今天早上我看到这段代码,我完全不知道那是什么意思。谁能解释一下这些是做什么的 <T>
代表?例如:
public class MyClass<T>
...
some bits of code then
private Something<T> so;
private OtherThing<T> to;
private Class<T> c;
谢谢
最佳答案
您遇到了“泛型”。在此 guide 中对它们进行了很好的解释.
简而言之,它们允许您指定存储类的类型,例如 List
或 Set
包含。如果你写 Set<String>
, 你已经声明这个集合必须只包含 String
s,如果你试图在其中放置其他内容,将会出现编译错误:
Set<String> stringSet = new HashSet<String>();
stringSet.add("hello"); //ok.
stringSet.add(3);
^^^^^^^^^^^ //does not compile
此外,泛型可以做的另一个有用示例是它们允许您更紧密地指定抽象类:
public abstract class AbstClass<T extends Variable> {
这样,扩展类就不必扩展Variable
了。 ,但他们需要扩展一个扩展 Variable
的类.
因此,一个处理 AbstClass
的方法可以这样定义:
public void doThing(AbstClass<?> abstExtension) {
哪里?
是一个通配符,意思是“所有用 AbstClass
扩展 Variable
的类”。
关于java - Java代码解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2719776/