2011-02-10 82 views
1

我有一個工廠,我想限制可能傳入get方法的值。Java 1.4工廠問題

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); 

我想限制可能被傳入的參數是要拍一個類型抽象類,然後繼承和使用類型作爲參數。 ?

+0

在Java 1.4中編程有什麼瘋狂的環境? – 2011-02-10 20:23:03

+0

我聽說.... – bmw0128 2011-02-10 20:34:45

回答

4

不要繼承它,只需創建一個Type類,該類具有一個帶有stirng參數的私有構造函數,並定義了公共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; } 
}