1.意思
jdk中的K,V,T,E等泛型名称很多人以为是固定写法,其实这些名称是可以改的,比如改成zhangsan,lisi都可以,jdk为了容易看懂,所以用K表示键,V表示值,T表示type类型,E表示enum枚举,其实这四个都只是符号,都是表示泛型名称,下面的例子的T全部可以换成E,也可以换成K,V,zhangsan,都没关系。
? 表示不确定的类型
Object java中所有类的父类。
2.使用方法
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- //T1,T2都是随便定义的东西,注意1:他们不会关联到其他类,只是在本类中通用,只是告诉我们new的时候要加入泛型
- public class Test<T1, T2> {
- public static void main(String[] args) {
- System.out.println(new Test().getaa());
- new Test<String, String> ().getbb("");
- new Test().getcc(Test.class);
- //注意下6:面这个HashMap的括号里面不能是T,E,T1,T2等不确定的东西,但可以是?
- HashMap<Object, String> map = new HashMap<Object, String>();
- List<?> list = new ArrayList<String>();
- }
- T2 getaa() {
- //注意2:T2将自动转型为String,这个不需要去担心
- return (T2) "few";
- }
- public <T> void getbb(T x) {
- //注意3:Class<T>前面缺少<T>将编译错误
- System.out.println(x.getClass().getName());
- }
- public <T> Class<?> getcc(Class<T> a) {
- //getcc前面的Class<T>前面缺少<T>将编译错误,注意4:Class<?>里面的问号可以换成T
- System.out.println(a.getClass().getName());
- //注意5:参数里面的Class<T>最大的好处是如果方法里面定义了泛型,可以自动获取类型值,比如如下的List<T>可以自动获取到a的类型,不必强调死
- List<T> aa=new ArrayList<T>();
- System.out.println(aa);
- return a;
- }
- }
相关推荐
下面我们将深入探讨Java泛型方法的概念、语法以及使用示例。 **一、泛型方法概念** 泛型方法是一种具有类型参数的方法,这些类型参数可以在方法声明时指定,并在方法体内部使用。与类的泛型类似,它们提供了编译时...
在Java中,我们经常会看到一些通配符,例如T、E、K、V等,这些通配符都是Java泛型的通配符,它们的区别在于它们的名称和使用场景。 * T (type):表示不确定的Java类型,通常用作泛型类型参数。 * E (element):代表...
在这个例子中,`T`是类型参数,代表一个未知的类型。在实例化泛型类时,我们可以指定`T`的具体类型,例如`MyClass<String>`或`MyClass<Integer>`。 然而,由于类型擦除,我们无法直接在运行时获取`T`的类型信息。...
然而,在`inspectCollection`方法中,我们期望遍历的元素都是`String`类型,但实际上集合中还包含了一个`Integer`对象。因此,在运行时,当我们尝试将一个非`String`对象转换为`String`时,就会抛出`...
泛型的基本语法是在类、接口或者方法的定义中使用尖括号`<>`包含一个或多个类型参数。 例如,定义一个泛型类: ```java public class Generic<T> { private T key; public Generic(T key) { this.key = key; ...
Java泛型是Java编程语言中的一个关键特性,它在2004年随着JDK 5.0的发布被引入。这个特性极大地提高了代码的类型安全性和可读性,减少了在运行时出现ClassCastException的可能性。SUN公司的Java泛型编程文档,包括...
### Java泛型指南经典知识点解析 #### 一、引言 Java 1.5 版本引入了一系列重要的语言特性,其中“泛型”是其中一项关键特性。泛型的引入极大地提高了 Java 语言的类型安全性和代码重用性。本文档旨在深入探讨 ...
在这个例子中,`T`是一个类型参数,代表任何类型的对象。当创建`Box`的实例时,需要指定`T`的具体类型,如`Box<String>`或`Box<Integer>`。 #### 使用泛型类 使用泛型类非常简单,只需要在创建实例时指定类型参数...
在这个例子中,`<T>`定义了一个类型参数,方法可以接受任何类型的`List`,并在方法体内操作`T`类型的数据,而无需进行显式类型转换。 Java泛型还有通配符,用于表示对类型的限制。例如,`?`表示任何类型,`? ...
Java泛型是Java编程语言中的一个关键特性,它在2004年随着Java SE 5.0的发布而引入,极大地增强了代码的类型安全性和重用性。泛型允许我们在编写类、接口和方法时指定参数化类型,使得代码在编译时就能进行类型检查...
"JAVA泛型笔记.pdf" Java 泛型(Generic)是 Java 5 中引入的一种机制,它允许开发者在编写类、接口和方法时指定类型参数,以提高代码的灵活性和可重用性。泛型的主要特点是可以在编译期检查类型的正确性,避免了...
在传统的Java编程中,如果我们要创建一个能够处理多种类型的数据结构,如上面例子中的坐标类`Position`,我们通常会使用`Object`作为数据存储类型,然后在使用这些数据时进行强制类型转换。然而,这种做法存在潜在的...
Java泛型是Java语言的一个重要特性,它允许在类、接口和方法中声明类型参数,从而提高了代码的复用性和安全性。这个特性自Java 5引入以来,极大地改善了Java的类型系统,降低了类型转换异常的风险。 1. **使用泛型...
- 如果有多个限定,如`<T extends XClass1 & XClass2>`,则使用第一个边界类型`XClass1`作为原始类型。 2. **类型擦除示例**: 对于上面给出的`Pair<T>`类,经过类型擦除之后,它将变为: ```java public class...
本文将详细介绍Java泛型的基本概念、使用方法以及其带来的好处。 #### 二、Java泛型概述 **1. 什么是Java泛型** Java泛型是一种允许在编译时检查类型安全,并且所有的强制转换都是自动和隐式的特性。它可以帮助...
在这个例子中,`max`方法接受两个参数,并返回其中较大的一个。类型参数`T`需要实现`Comparable`接口。 #### 四、类型擦除 类型擦除是指Java编译器在编译期间删除了程序中所有的类型参数信息,并将它们替换为对应...
在这个示例中,`createAndInvoke`方法接受一个类名字符串、一个方法名字符串和任意数量的参数,然后使用反射创建该类的实例,并调用指定的方法。`getTypes`方法用于获取参数的类型数组,这是为了匹配`getMethod`方法...