Java泛型类型转换难题
我试图使用Google的Guava ImmutableSet类创建一组具有类时间属性(java.util.Date和org.joda.time.DateTime)的不可变类Java泛型类型转换难题,java,generics,guava,Java,Generics,Guava,我试图使用Google的Guava ImmutableSet类创建一组具有类时间属性(java.util.Date和org.joda.time.DateTime)的不可变类 private static final ImmutableSet>>>到ImmutableSet timeLikeObjects=ImmutableSet.of(Date.class,DateTime.class); 但是,我显然没有对TimeLikeObject类型进行一般性描述 我从未在泛型描述中遇到过符号,而且它似
private static final ImmutableSet>>>到ImmutableSet timeLikeObjects=ImmutableSet.of(Date.class,DateTime.class);
但是,我显然没有对TimeLikeObject类型进行一般性描述
我从未在泛型描述中遇到过符号,而且它似乎不是有效的语法
有没有一种方法可以在Java泛型中指定我刚刚缺少的多重继承?基本上,编译器正试图为您提供智能。它正在为您计算一些界限,并尝试将它们用于的
返回类型
幸运的是,您可以通过显式的方式修复它:
private static final ImmutableSet<Class<?>> timeLikeObjects =
ImmutableSet.<Class<?>>of(Date.class, DateTime.class);
这意味着您只能为实现Serializable
和compariable
的T
指定类型,这是一个非常有启发性的回答。你很抱歉,这个解决方案非常有效。谢谢!:)
Type mismatch: cannot convert from ImmutableSet<Class<? extends Object&Serializable&Comparable<? extends Comparable<?>>>> to ImmutableSet<Class<?>>
private static final ImmutableSet<?> timeLikeObjects = ImmutableSet.of(Date.class, DateTime.class);
private static final ImmutableSet<Class<?>> timeLikeObjects =
ImmutableSet.<Class<?>>of(Date.class, DateTime.class);
public class Foo<T extends Serializable & Comparable<T>>