public void method(String param) {...}
Но в таком случае в качестве параметра может быть принята любая строка. В соответствии с принципом, что все потенциальные ошибки по возможности надо переносить на момент компиляции, такой вариант неприемлем. Тут и приходит на помощь Enum:
public enum TypesafeEnum {GREEN, RED, BLUE};
А можно ли обойтись без него? Конечно можно, ведь Enum появились только с java 1.5. Тут нам может помочь паттерн Typesafe Enum:
public class TypesafeEnum { private final String name; private TypesafeEnum(String name) { this.name = name; } public static final TypesafeEnum GREEN = new TypesafeEnum("green"); public static final TypesafeEnum RED = new TypesafeEnum("red"); public static final TypesafeEnum BLUE = new TypesafeEnum("blue"); public String toString() { return name; } }Теперь можно обьявить наш метод таким образом:
public void method(TypesafeEnum param) {...}соответственно его вызов:
someObject.method(TypesafeEnum.RED);
Подробнее о паттерне здесь