
在java中,可以声明一个接受两个或多个类型参数的泛型类。这些参数指定为以逗号分隔的列表。
例如,twogen 泛型类接受两个类型参数:
class twogen<t, v> {
t ob1;
v ob2;
// construtor que recebe objetos de tipos t e v
twogen(t o1, v o2) {
ob1 = o1;
ob2 = o2;
}
// exibe os tipos de t e v
void showtypes() {
system.out.println("type of t is " + ob1.getclass().getname());
system.out.println("type of v is " + ob2.getclass().getname());
}
t getob1() { return ob1; }
v getob2() { return ob2; }
}
使用示例:
该类可以与不同类型一起使用,如下所示:
twogen<integer, string> tgobj = new twogen<>(88, "generics");
tgobj.showtypes(); // exibe os tipos de t e v
int v = tgobj.getob1();
system.out.println("value: " + v);
string str = tgobj.getob2();
system.out.println("value: " + str);
示例输出:
type of t is java.lang.integer type of v is java.lang.string value: 88 value: generics
重要提示:
声明 twogen 时,创建实例时必须传递两个类型参数,如下例所示:
twogen<integer, string> tgobj = new twogen<>(88, "generics");
这里,t 被替换为 integer,v 被替换为 string。
类型参数可以相同:
twogen<string, string> x = new twogen<>("a", "b");
在本例中,t 和 v 都是 string 类型。
声明泛型类的一般形式:
class nomeclasse<parâmetrostipo> {
// implementação
}
创建通用实例的一般方法:
NomeClasse<ArgumentosTipo> nomeVariavel = new NomeClasse<>(ArgumentosConstrutor);









