我刚开始阅读有关泛型类的内容.我想知道参数类型的名称是否会影响传入的内容.代码1和代码2的工作方式是否完全相同?它们都是通用类吗?谢谢!
// Code 1
public class Bar<AnyType> {
private AnyType a;
}
// Code 2
public class Bar<Lalaland> {
private Lalaland a;
}
Run Code Online (Sandbox Code Playgroud)
它的工作方式完全相同,就像选择不同的变量名称一样.
int anyInt = 5;
Run Code Online (Sandbox Code Playgroud)
与
int lalaland = 5;
Run Code Online (Sandbox Code Playgroud)
但是请务必小心选择与现有类名不同的泛型类型参数名称.虽然它是合法的,但当类型参数被误认为类名时,会导致很多混淆.
// Don't do this.
public class Bar<Integer> // confusing!
Run Code Online (Sandbox Code Playgroud)
按照惯例,类型参数名称是单个大写字母.这与您已经了解的变量命名约定形成鲜明对比,并且有充分的理由:如果没有这种约定,就很难区分类型变量和普通类或接口名称.
最常用的类型参数名称是:
- E - Element(Java Collections Framework广泛使用)
- K - 钥匙
- N - 数字
- T型
- V - 价值
- S,U,V等 - 第2,第3,第4类型