gpt4 book ai didi

java - 为什么是S和T而不是A和B?

转载 作者:行者123 更新时间:2023-12-03 06:14:26 25 4
gpt4 key购买 nike

这可能是一个关于泛型类型的愚蠢问题,但我在泛型类型遵循的命名约定背后找不到任何好的解释。如果有一个类有两个泛型类型; Java 程序员通常这样定义它:

class Foo<S extends Abc,T extends Pqr>{
S sVar;
T tVar;
}

为什么不做一些简单的事情,比如:

class Foo<A extends Abc,B extends Pqr>{
A aVar;
B bVar;
}

我只是想问为什么要遵循这样的命名约定? ST 背后有什么原因吗?或者这个约定来自其他语言(比如 C++ 模板)?

最佳答案

来自Java tutorials :

Type Parameter Naming Conventions

By convention, type parameter names are single, uppercase letters. This stands in sharp contrast to the variable naming conventions that you already know about, and with good reason: Without this convention, it would be difficult to tell the difference between a type variable and an ordinary class or interface name.

The most commonly used type parameter names are:

E - Element (used extensively by the Java Collections Framework)
K - Key
N - Number
T - Type
V - Value
S,U,V etc. - 2nd, 3rd, 4th types

You'll see these names used throughout the Java SE API and the rest of this lesson.

<小时/>

特别注意:“如果没有这个约定,就很难区分类型变量和普通的类或接口(interface)名称。”,我当然同意这一点。 p>

大多数人会使用 TS,因为这是常见做法,因此对于大多数其他人来说可读。但我想补充一点,我看到名称 AB 也用作类的示例名称:class A {...}, B类{...}。使用它们作为类型变量名称将使它们难以区分。

关于java - 为什么是S和T而不是A和B?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38027485/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com