我有一个工厂,我想限制可能传递给get方法的值。
public static class FooFactory{
public static final String TYPE1= "type1";
public static Foo getFoo(String type){
switch(type){
case "type1":
return new Type1();
}
}
}
要使用它:
FooFactory.getFoo(FooFactory.TYPE1);
我想限制可能传入的参数。是想创建一个Type抽象类,然后创建子类并使用Type作为参数吗?
答案 0 :(得分:4)
不要对它进行子类化,只需使用带有stirng参数的私有构造函数创建一个Type
类,并定义公共Type
常量。
像这样。
public final class Type {
public static final Type FOO = new Type( "foo" );
public static final Type BAR = new Type( "bar" );
private String type;
private Type( String type ) {
this.type = type;
}
public String getType() { return type; }
}