我有一个界面
public interface MValue extends SomeOtherInterface, Serializable
我在另一个界面中使用它
public interface DomainObject extends Iterable<FieldValueAssociation>, Cloneable, Serializable {
void add(DomainField field, MValue... values);
<T> T get(DomainField field);
}
当我在其他课程中调用它时,我设置了
subDomain.add(DomainField.ZIP, d.get(DomainField.ZIP));
在java 7上这很好用,但是在java 8上我得到 java.lang.ClassCastException:java.lang.String不能强制转换为net.blabla.domain.MValue
d.get(DomainField.ZIP)
应该返回String,它是,但它不能被转换为MValue,我不知道为什么?有人可以解释或推荐我一些文档。感谢。
答案 0 :(得分:2)
这样做有用吗?
URLrewriteFilter
这里我明确地将subDomain.add(DomainField.ZIP, d.<String>get(DomainField.ZIP));
的类型赋予T
,但类型检查仍会发生,但它向编译器明确了预期的内容。
此调用应适用于Java 7和8。