这可能是一个愚蠢的问题,所以请原谅我的无知。
public class Foo<T extends Base> implements Bar<T> {
private Bar<T> wrapped;
public void setWrapped(Bar<T> input) {
wrapped = input;
}
}
如果我用:
//Lets just assume methods getNewVal and getFoo exist
Bar<? extends Base> val = getNewVal();
Foo<? extends Base> foo = getFoo();
foo.setWrapped(val);
编译器说foo.execute(val)是一个错误。带有一条沿着setWrapped方法(bar
如果我想把福变成
public class Foo<T extends Base> implements Bar<T> {
private Bar<T> wrapped;
public void setWrapped(Bar<? extends Base> input) {
wrapped = input;
}
}
看起来你想要的是
public class Foo {
private Bar<? extends Base> wrapped;
public void setWrapped(Bar<? extends Base> input) {
wrapped = input;
}
}
但是,还不清楚bar
接口foo
需要实现什么,以及为什么foo
应该具有bar
和bar
。
你能向我解释一下这里发生了什么,为什么它没有错误。 很抱歉,如果已经有类似的问题,我没有正确地表达这个问题,所以不能用谷歌搜索它
本文向大家介绍Java泛型详解,包括了Java泛型详解的使用技巧和注意事项,需要的朋友参考一下 1. Why ——引入泛型机制的原因 假如我们想要实现一个String数组,并且要求它可以动态改变大小,这时我们都会想到用ArrayList来聚合String对象。然而,过了一阵,我们想要实现一个大小可以改变的Date对象数组,这时我们当然希望能够重用之前写过的那个针对String对象的Arra
本文向大家介绍初步理解Java的泛型特性,包括了初步理解Java的泛型特性的使用技巧和注意事项,需要的朋友参考一下 在Java SE1.5中,增加了一个新的特性:泛型(日本语中的总称型)。何谓泛型呢?通俗的说,就是泛泛的指定对象所操作的类型,而不像常规方式一样使用某种固定的类型去指定。泛型的本质就是将所操作的数据类型参数化,也就是说,该数据类型被指定为一个参数。这种参数类型可以使用在类、接口以及方
问题内容: 我有一个代表文本片段的泛型类。该文本片段可能具有多种不同模式(突出显示的不同类型)中的任何一种。这些模式用枚举表示。每个项目的Enum可能不同,但是它必须实现一个接口,该接口提供了一种将其中两个结合的方法(可以突出显示并加粗显示)。所以我有一个界面: 然后我的TextFragment是文本字符串和模式的容器。但是当我尝试声明该类时: 我收到以下错误: 令牌“扩展”的语法错误,预期 根据
我正在尝试使用JAXB从遗留系统中解压XML文档。我的xml结构如下所示:
本文向大家介绍Java中的泛型详解,包括了Java中的泛型详解的使用技巧和注意事项,需要的朋友参考一下 所谓泛型:就是允许在定义类、接口指定类型形参,这个类型形参在将在声明变量、创建对象时确定(即传入实际的类型参数,也可称为类型实参) 泛型类或接口 “菱形”语法 从泛型类派生子类 伪泛型 不存在真正的泛型类,泛型类对Java虚拟机来说是透明的.JVM并不知道泛型类的存在,换句话来说,JVM处理泛型