近日,需要用Annotation(注解)来实现对象的数据Copy。但是有些字段是List或Map,这时就到取到List或Map的范型参数。查找一下JDK类,果真能取出来,记录如下:
1. 模型类
public class Model {
private List<String> list;
public List<String> getList() {
return list;
}
public void setList(List<String> list) {
this.list = list;
}
}
2. 解析类
import java.lang.reflect.Field;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
public class ModelParser {
public static void main(String[] args) throws Throwable {
Field field = Model.class.getDeclaredField("list");
Type type = ((ParameterizedType) field.getGenericType()).getActualTypeArguments()[0];
System.out.println(type);
System.out.println(type == String.class);
}
}
结果是:
class java.lang.String
true
分享到:
相关推荐
Java 范型Java 范型
Java 运行时如何获取泛型参数的类型 Java类型Type 之 ParameterizedType,GenericArrayType,TypeVariabl,WildcardType 从实现的接口获取泛型参数 定义一个泛型父类: public interface SuperClass { String ...
在Java中,范型也被称为参数化类型。例如,`HashMap, Value>`就是一个范型类,其中`Key`和`Value`是类型参数,代表了存储的数据的键和值的类型。在创建`HashMap`实例时,我们可以指定具体的类型,如`HashMap, ...
在早期版本的Java中,如Java 1.4及以前,集合框架(如`ArrayList`)只能存储`Object`类型的数据,这导致了类型信息在编译期的丢失,进而引发运行时的类型转换异常(`ClassCastException`)。为了解决这一问题,Java...
在Java中,我们使用尖括号 `<T>` 来声明类型参数,其中`T`可以是任何字母,代表“类型”。 当涉及到带有两个类型参数的泛型时,语法会稍微复杂一些。例如,我们可以创建一个表示键值对的数据结构,如下所示: ```...
在Java中,获取泛型信息是非常重要的,特别是在反射机制中。通过反射,我们可以获取类中的字段、方法和构造函数等信息,但是如果字段的类型是泛型的,例如Map, Integer>,那么使用普通的反射机制无法获取到泛型参数...
- **类型擦除**:Java泛型在编译后会进行类型擦除,实际生成的字节码中不会包含类型参数。这意味着在运行时,泛型对象实际上是无类型的,但编译时的类型检查仍然有效。 3. **泛型通配符** - **无界通配符**:`?`...
本示例将探讨如何在Java中实现泛型类的类型识别。 首先,我们来理解什么是类型识别(Runtime Type Information, RTTI)。在Java中,RTTI允许我们在程序运行时检查和操作对象的实际类型,这是通过使用`instanceof`...
《C++多范型设计》是一本深入探讨C++编程语言中模板技术的专著,由知名软件工程师James O. Coplien撰写,并由鄢爱兰、周辉等翻译成中文版,ISBN号为9787508318240。这本书的核心主题是C++中的泛型编程,它是C++编程...
首先,我们需要了解Java中的Socket API。Socket是网络通信的基础,它提供了在网络中两台计算机之间建立连接并进行数据交换的能力。在Java中,`java.net.Socket`和`java.net.ServerSocket`类是实现这一功能的核心。`...
### JDK 1.5 中的范型 #### 引言 自 JDK 1.5 开始,Java 语言正式引入了一项重要的特性——泛型(Generics),这使得 Java 成为了一个更为强大且灵活的语言。泛型允许开发人员编写出类型安全的通用类或方法,从而...
介绍获取方法的参数和返回值类型(包括Type和Class)获取泛型参数类型(包括对象的泛型参数或集合元素的泛型类型)方法首先我们定义一个类:public cla
《范型程序设计与 STL》是一本深入探讨C++编程中的关键概念和技术的书籍,主要聚焦于范型(Generic Programming)和标准模板库(Standard Template Library,简称STL)。范型编程是一种强大的软件开发方法,它允许...
在泛型引入之前,Java集合框架中的类如`List`,`Set`和`Map`都是基于`Object`类型的,这意味着它们可以存储任何类型的对象。然而,这带来了类型安全问题和大量的类型转换工作。例如,当我们使用`List.add(Object)`...
- Java范型在编译后会进行类型擦除,实际运行时并不保留类型参数信息,因此在运行时无法通过反射获取泛型类型。 - 擦除后,泛型类的实例将退化为无参数类型,但编译器会检查类型安全。 4. 泛型与多态 - 泛型与...
范型参考 (1).java
范型参考 (2).java
Java 实现泛型List的源码,基本实现了List接口的全部所有方法。欢迎大家发表自己的观点和建议。
消息传递范型是计算机科学中的一个基本概念,用于描述进程间通信的方式。在这范型中,数据通过消息形式在发送者(sender)和接收者(receiver)之间进行交换。消息传递机制的优点在于它的异步性质,能够支持分布式...