✅ 泛型中K T V E? Object等分别代表什么含义
- ✅ 典型解析
- ✅代码示例
✅ 典型解析
E - Element (在集合中使用,因为集合中存放的是元素)
T-Type (Java 类)
K- Key (键)
V - Value (值)
N - Number (数值类型)
? - 表示不确定的iava类型 (无限制通配符类型)
S、U、V- 2nd、3rd、4th types
Obiect - 是所有类的根类,任何类的对象都可以设置给该Obiect用变量,使用的时候可能需要类型强制转换但是用使用了泛型T、E等这些标识符后,在实际用之前类型就已经确定了,不需要再进行类型强制转换。
✅代码示例
//示例1: 使用T作为泛型类型参数,表示任何类型public class MyGenericClass<T> {private T myField;public MyGenericClass(T myField) {this.myField = myField;}public T getMyField() {return myField;}
}// 示例2: 使用K、V作为泛型类型参数,表示键值对中的键和值的类型public class MyMap<k, V> {private List<Entry<K,V>> entries;public MyMap() {entries = new ArrayList<>();}public void put(K key, V value) {Entry<K,V> entry = new Entry<>(key, value);entries.add(entry);}public V get(K key) {for (Entry<K,V> entry : entries) {if (entry.getKey().equals(key)) {return entry.getValue();}}return null;}private class Entry<K, V> {private K key;private V value;public Entry(K key, V value) {this .key = key;this.value = value;}public K getKey() {return key;}public V getValue() {return value;}}
}//示例3: 使用E作为泛型类型参数,表示集合中的元素类型
public class MyList<E> {private List<E> elements;public MyList() {elements = new ArrayList<>();}public void add(E element) {elements .add(element ) ;}public E get(int index) {return elements.get(index);}
}// 示例4: 使用Object作为泛型类型参数,表示可以接受任何类型public class MyGenericClass {private Object myField;public MyGenericClass(Object myField) {this.myField = myField;}public Object getMyField() {return myField;}
}