[英]Does the name in a parameter type determine if the class is generic?
我刚开始阅读有关泛型类的内容。 我想知道参数类型的名称是否会影响传入的内容。代码1和代码2的工作方式是否完全相同? 它们都是通用类吗? 谢谢!
// Code 1
public class Bar<AnyType> {
private AnyType a;
}
// Code 2
public class Bar<Lalaland> {
private Lalaland a;
}
它的工作方式完全相同,就像选择不同的变量名称一样。
int anyInt = 5;
与
int lalaland = 5;
但是请务必小心选择与现有类名不同的泛型类型参数名称。 虽然它是合法的,但当类型参数被误认为类名时,会导致很多混淆。
// Don't do this.
public class Bar<Integer> // confusing!
根据关于这个主题的Java教程 ,
按照惯例,类型参数名称是单个大写字母。 这与您已经了解的变量命名约定形成鲜明对比,并且有充分的理由:如果没有这种约定,就很难区分类型变量和普通类或接口名称。
最常用的类型参数名称是:
- E - Element(Java Collections Framework广泛使用)
- K - 钥匙
- N - 数字
- T型
- V - 价值
- S,U,V等 - 第2,第3,第4类型
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.