什么代码片段类Abc <r extends =“”xyz =“”>扩展DAO代表什么?</r>

时间:2014-04-28 08:03:27

标签: java generics inheritance dao

我的代码段如下:

public class Abc <R extends XYZ> extends DAO{
.
.
.
}

有人可以解释这个片段吗? 在此先感谢。

3 个答案:

答案 0 :(得分:1)

Abc是DAO的子类,还包括一个泛型R,它是XYZ类型的子类

答案 1 :(得分:1)

这是Abc类的声明,extendsDAOdata access object)。泛型部分<R extends XYZ>表示它可用于插入,更新和/或删除扩展类R的对象XYZ(最可能是data transfer object)。现在,没有R类的声明。它只是扩展XYZ的任何类别的占位符。

答案 2 :(得分:1)

您的班级Abc是班级类型DAO的子类。这意味着以下内容将编译:

DAO abc = new Abc();

其次,您的Abc类已定义了泛型类型R。此类型必须是XYZ的子类。这意味着,对于任何可以称为XYZ的类,都可以用于为此类Abc添加通用性。

public class ARGH extends XYZ { }

Abc<ARGH> abc = new Abc<ARGH>();

这意味着对于R内的任何类型Abc,它现在都是ARGH类型。

public class Abc <R extends XYZ> extends DAO {
    R element;

    public Abc(R element) {
       this.element = element;
    }
}