List<JAXBElement<? extends SomeClassName>> 是什么意思?
What does List<JAXBElement<? extends SomeClassName>> mean?
我们如何将值设置为类型为 List<JAXBElement<? extends SomeClassName>>
的 class 的属性?
public class Claasname{
protected List<JAXBElement<? extends SomeOtherClassName>> name;
//getter method for this
}
列表是通用的。
List<Type>
这意味着您可以定义允许将哪些元素放入您的列表中。
例如
List<String>
将是一个仅包含字符串的列表。
除此之外,您还有通用的 JAXBElement。所以你可以定义这个 class 是由哪个元素构建的。
JAXBElement<Type>
然后你有扩展运算符:
<? extends SomeClass>
这意味着此 JAXBElement 对任何扩展 SomeClass(或 SomeClass 本身)的类型都是通用的。
所以总的来说,你有一个可以接受 JAXBElements 的列表,这些元素可以映射到 SomeClass 或其任何子classes。
例如允许的是:
JAXBElement<SomeClass> element = ...
name.add(element);
JAXBElement<ChildOfSomeClass> elementChild = ...
name.add(elementChild );
不允许的是:
JAXBElement<ParentOfSomeClass> elementParent = ...
name.add(elementParent); //Compile-error
我们如何将值设置为类型为 List<JAXBElement<? extends SomeClassName>>
的 class 的属性?
public class Claasname{
protected List<JAXBElement<? extends SomeOtherClassName>> name;
//getter method for this
}
列表是通用的。
List<Type>
这意味着您可以定义允许将哪些元素放入您的列表中。
例如
List<String>
将是一个仅包含字符串的列表。
除此之外,您还有通用的 JAXBElement。所以你可以定义这个 class 是由哪个元素构建的。
JAXBElement<Type>
然后你有扩展运算符:
<? extends SomeClass>
这意味着此 JAXBElement 对任何扩展 SomeClass(或 SomeClass 本身)的类型都是通用的。
所以总的来说,你有一个可以接受 JAXBElements 的列表,这些元素可以映射到 SomeClass 或其任何子classes。
例如允许的是:
JAXBElement<SomeClass> element = ...
name.add(element);
JAXBElement<ChildOfSomeClass> elementChild = ...
name.add(elementChild );
不允许的是:
JAXBElement<ParentOfSomeClass> elementParent = ...
name.add(elementParent); //Compile-error