我正在学习 Java,有一个关于 <> 和 () 之间区别的问题,例如定义类时?例如:
public class CounterMap<K, V> implements java.io.Serializable {
private static final long serialVersionUID = 11111;
MapFactory<V, Double> mf;
Map<K, Counter<V>> counterMap;
protected Counter<V> ensureCounter(K key) {
Counter<V> valueCounter = counterMap.get(key);
if (valueCounter == null) {
valueCounter = new Counter<V>(mf);
counterMap.put(key, valueCounter);
}
return valueCounter;
}
}
任何见解将不胜感激。谢谢。
最佳答案
尖括号< >
用于指示泛型类型。例如,包含字符串的列表的类型为 List<String>
。泛型是一个中级主题,如果您是初学者,在不首先了解其他 Java 和编程基础知识的情况下,它可能会有点令人困惑。
括号( )
用于调用和声明方法,它们包含方法参数和参数。
您的示例是使用泛型在映射中存储任何类型的数据,而不必具体说明类型是什么。所以如果我想要一个CounterMap
存储 Long
的键值对和String
类型,我可以像这样声明和初始化它:
CounterMap<Long, String> myCounterMap = new CounterMap<Long, String>();
从 Java 7 开始,您可以使用称为“钻石”的东西并将其简化为:
CounterMap<Long, String> myCounterMap = new CounterMap<>();
关于Java新手: Difference between <> and ()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32534436/