0
時指定通用枚舉類型爲I型有以下的情況延伸抽象類
public interface MyCriteria<T extends Comparable<T>>{
public T getValue();
}
public abstract class AbstractMyCriteria<T extends Comparable<T>> implements MyCriteria<T>{
private String code;
public AbtsractMyCriteria(String code){
this.code=code;
}
}
我有許多類,例如用於不同類型的(日期,字符串,整數等)
以下public DateEqualsMyCriteria extends AbstractMyCriteria<Date>{
private Date value;
public DateEqualsMyCriteria(String code,Date value){
super(code);
this.value=value;
}
@Override
public Date getValue(){
return value;
}
}
我需要編寫另一個類,可以處理枚舉作爲類型而不是日期,整數,字符串等,但我嘗試導致編譯錯誤。
例如說我有以下枚舉
public enum Type {
Attribute,
Entity
}
public enum Operation {
Equal,
GreaterThan,
GreaterThanOrEqualTo,
LessThan,
LessThanOrEqualTo,
NotNull,
Null,
Wildcard
}
我需要能夠對一些諸如
EnumEqualsMyCriteria enumEqualsMyCriteria=new EnumEqualsMyCriteria("Name",Type.Entity);
任何建議,將不勝感激。
UPDATE
我已經試過是
public class AttributeEnumEqualsFlexxCriteria extends AbstractFlexxCriteria<Enum> implements Comparable<Enum>
而是賦予它的邊界內的錯誤java.land.Enum不是必須實現可比,即使我已經在類中實現的compareTo 。
所有枚舉都是Enum的子類,因此您可以將Enum作爲類型參數。這有幫助嗎? –
嗨JP我試過,但得到了一個枚舉沒有約束的錯誤,我不知道如何解決這個問題。謝謝 –
另外,你的具體類別不會做你的抽象類不能做的事情。您可以獲得T類的價值。 –