【问题标题】:what does the code snippet Class Abc <R extends XYZ> extends DAO stands for? [closed]代码片段 Class Abc <R extends XYZ> extends DAO 代表什么? [关闭]
【发布时间】:2014-04-28 08:03:27
【问题描述】:

我的代码 sn-p 如下:

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

谁能解释一下这个sn-p? 提前致谢。

【问题讨论】:

  • 你不明白哪一部分,我假设你知道的 DAO 指的是数据访问对象?
  • 我知道 Abc 扩展了 DAO,这意味着它具有其父级的属性。并且泛型类继承了 XYZ 的属性。但是我没有得到的是,写这个有什么用,会有什么效果。

标签: java generics inheritance dao


【解决方案1】:

这是一个 Abc 类的声明 extends 一个类 DAO (data access object)。泛型部分&lt;R extends XYZ&gt; 表示它可用于插入、更新和/或删除对象R,这些对象扩展了XYZ 类(很可能是data transfer object)。现在,没有R 类的声明。它只是扩展 XYZ 的任何类的占位符。

【讨论】:

【解决方案2】:

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

【讨论】:

  • 由于我是 java 新手,您能否使用更冗长的解释。
【解决方案3】:

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

DAO abc = new Abc();

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

public class ARGH extends XYZ { }

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

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

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

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

【讨论】:

    猜你喜欢
    • 2021-11-02
    • 2021-01-14
    • 2011-03-06
    • 2016-04-06
    • 2015-10-05
    • 1970-01-01
    • 2013-09-24
    • 2013-05-13
    • 2023-03-23
    相关资源
    最近更新 更多