繁体   English   中英

参数类型中的名称是否确定该类是否是通用的?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM