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类的价值。 –