Java类定义

时间:2011-04-26 03:04:41

标签: java class

我试图了解这个java类定义是什么。

abstract public class A<P extends B<?, ?>,Input,Output>
{
...
// class defined
...
}

c ++程序员转向java

5 个答案:

答案 0 :(得分:3)

这定义了一个名为A的抽象类,它有三个类型参数:

  • P,必须是B类型(带有任何类型参数)或从中派生的任何类型
  • Input,任何类型
  • Output,任何类型

感兴趣的是第一个类型参数。在C ++中,对于基于类型的模板参数,您可以提供任何类型;在Java中,您可以选择通过类和/或接口约束类型,类型也必须扩展/实现。

答案 1 :(得分:1)

一点“翻译”:

“abstract”表示此类可能具有抽象(〜=纯虚拟)方法。

A类是通用(〜模板)定义

P extends ...是泛型参数的额外约束,应该是......的子类

P延伸B <?,?&gt;表示通用参数#1是另一个泛型类的子类

答案 2 :(得分:1)

这是一个抽象类定义(显然),带有3个通用参数。

第一个参数P有一个约束,它必须是类型(或扩展)类/接口B,它有两个通用参数(没有约束),所以它可能像

public class B<T1, T2> {

}

第二个和第三个参数,即输入和输出没有约束。

答案 3 :(得分:-1)

尖括号表示法是Java Generics

答案 4 :(得分:-1)

嗯,要真正理解它你想要包含更多的定义,但B是一个带有泛型的类,A中有三个泛型引用;它有点病态,但它很容易逐步完成。