【泛型中K T V E? Object等分别代表什么含 义】

2023-12-22 23:32:26

在这里插入图片描述

? 泛型中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<KV>> entries;
	
	public MyMap() {
		entries = new ArrayList<>();
	}

	public void put(K key, V value) {
		Entry<KV> 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<KV> {
		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;
	}
}

文章来源:https://blog.csdn.net/Java_Yangxiaoyuan/article/details/135162211
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。