使用多组类对象而不依赖于原始类型

时间:2013-11-27 03:09:52

标签: java generics enums

我正在尝试通过枚举来实现访问者模式,以检查类对象是否是某种类型,以及它是否返回某个字符串。我遇到的问题是尝试创建一组类对象而不依赖于原始类型。问题当然是SetClass都是不可重复的类型。我可以使用raw(因为感谢类型擦除,这是编译器正在做的事情)但我想知道是否有办法用泛型做到这一点。以下是我的内容(DateTrackedVersionedEntityUser的超级类型):

public static enum MissingDataKeyType {

    USER {
        @Override
        public <T extends DateTrackingVersionedEntity> Set<Class<T>> correspondingClasses() {
            return Collections.singleton(User.class);
        }
    }
    //rest of code here

    public abstract <T extends DateTrackingVersionedEntity> Set<Class<T>> correspondingClasses();
}

我尝试使用?而不是T,但没有骰子 - 我总是得到一个关于如何Set<Class<User>>无法转换为Set<Class<T>>的编译器错误。有没有办法在没有原始类型的情况下解决这个问题?

显然,不可能,只需忽略原始类型并使用Set<Class<? extends Class>>

即可解决

0 个答案:

没有答案