代码之家  ›  专栏  ›  技术社区  ›  Aradhya

什么是List<JAXBElement<?扩展SomeClassName>>意味着?

  •  1
  • Aradhya  · 技术社区  · 9 年前

    我们如何使用类型将值设置为类的属性 List<JAXBElement<? extends SomeClassName>> ?

    public class Claasname{
        protected List<JAXBElement<? extends SomeOtherClassName>> name;
        //getter method for this
    }
    
    1 回复  |  直到 9 年前
        1
  •  0
  •   Denis Lukenich    9 年前

    列表是通用的。

    List<Type>
    

    这意味着您可以定义允许哪些元素放入列表中。

    例如。

    List<String> 
    

    将是一个仅包含字符串的列表。

    此外,您还有JAXB元素,这些元素也是通用的。因此,您可以定义该类是由哪个元素构建的。

    JAXBElement<Type>
    

    然后您有extends运算符:

    <? extends SomeClass>
    

    这意味着此JAXBElement对于扩展SomeClass(或SomeClass本身)的任何类型都是通用的。

    所以总的来说,您有一个可以接受JAXBElements的List,这些Elements可以映射到SomeClass或其任何子类。

    E、 g.允许:

    JAXBElement<SomeClass> element = ...
    name.add(element);
    JAXBElement<ChildOfSomeClass> elementChild = ...
    name.add(elementChild );
    

    虽然不允许:

    JAXBElement<ParentOfSomeClass> elementParent = ...
    name.add(elementParent); //Compile-error