本质上这些个都是通配符,没啥区别,只不过是编码时的一种约定俗成的东西。比如下列代码中的 T 。
package org.springframework.beans.factory; import org.springframework.lang.Nullable; public interface FactoryBean<T> { @Nullable T getObject() throws Exception; @Nullable Class<?> getObjectType(); default boolean isSingleton() { return true; } }
其实我们可以换成 A-Z 之间的任何一个 字母都可以,并不会影响程序的正常运行,但是如果换成其他的字母代替 T ,在可读性上可能会弱一些。通常情况下,T,E,K,V,?,S,U,是这样约定的:
T 代表 Type,表示任意的一个java类型。
E 代表 Element 的意思,或者 Exception 异常的意思,在集合中比较常见。
K 代表 Key 的意思,通常与 V 一起使用,通常用Map中比较常见。
V 代表 Value 的意思,通常与 K 一起配合使用,通常用Map中比较常见。
?代表 不确定的java类型。
S 和 U 基本上与 T 相同,即表示任意的一个Java类型。
完结!