`

通过反射去获取集合类中的泛型实际类型

 
阅读更多
package com.huaxia.utils.learn;

import java.io.InputStream;
import java.lang.reflect.Method;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.util.Date;
import java.util.List;
import java.util.Properties;
import java.util.Vector;

public class ClassLoaderTest {
	public static void main(String[] args) throws Exception {
//		// 从classpath根目录开始找配置文件
//		InputStream is = ClassLoaderTest.class.getClassLoader()
//				.getResourceAsStream("config.properties");
//		Properties prop = new Properties();
//		prop.load(is);
//		is.close();
//		System.out.println(prop.get("apple"));
		Method m = ClassLoaderTest.class.getMethod("applyVector", Vector.class,List.class);
		Type[] types = m.getGenericParameterTypes();
		for(Type t:types){
			System.out.println(((ParameterizedType) t).getRawType());
			System.out.println(((ParameterizedType) t).getActualTypeArguments()[0]);
		}
	}
	
	public static <T> void applyVector(Vector<Date> p,List<T> o){
		
	}
}

 执行结果:

class java.util.Vector

class java.util.Date

interface java.util.List

T

分享到:
评论

相关推荐

    java基础(多线程,IO,集合,网络编程,泛型)

    本资源包“java基础(多线程,IO,集合,网络编程,泛型)”提供了对Java核心技术的全面介绍,包括五个核心主题:多线程、输入/输出(IO)、集合框架、网络编程和泛型。以下是对这些主题的详细讲解: 1. **多线程**: - ...

    Java 基础核心总结 +经典算法大全.rar

    获取类中的变量(Field) 获取类中的方法(Method) 获取类的构造器(Constructor) 获取注解 通过反射调用方法反射的应用场景 Spring 的 IOC 容器反射 + 抽象工厂模式 JDBC 加载数据库驱动类反射的优势及缺陷 增加程序的...

    java 面试题集合,覆盖范围广

    14. **泛型**:泛型是Java SE 5.0引入的新特性,用于提供类型安全,减少类型转换,面试中可能会涉及泛型类、泛型方法和通配符的使用。 15. **Lambda表达式**:Java 8引入的Lambda表达式简化了函数式编程,理解其...

    java常见面试题汇总

    3. Collection与Collections的区别:Collection是所有集合类的父接口,Collections则是操作集合的工具类。 三、多线程 1. 线程的创建:通过Thread类和Runnable接口创建线程。 2. 线程同步:synchronized关键字,...

    MSDN_C#编程指南

    - **协变**:在泛型委托中允许子类型替换基类型。 - **逆变**:在泛型委托中允许基类型替换子类型。 #### 六十六、如何:合并委托(多路广播委托) - **多路广播**:展示如何将多个委托合并为一个。 #### 六十七、...

    java笔试题不错,可以看看

    9. **反射机制**:理解反射的概念,如何通过反射动态获取类信息、创建对象、调用方法。 10. **泛型**:理解泛型的作用,知道如何定义泛型类、泛型接口、泛型方法,并能避免类型擦除带来的问题。 11. **JVM**:了解...

    Java面试必备知识4.docx.zip

    4. **集合框架**:熟悉ArrayList、LinkedList、HashSet、HashMap等常用集合类,了解它们的特性、性能差异以及应用场景。理解并发环境下集合类的线程安全问题。 5. **多线程**:理解线程的概念,掌握Thread类和...

    java复习题目

    12. **Java API使用**:熟悉Java标准库中的各种类和接口,如集合类、IO流、日期时间API、多线程API等,是高效编程的基础。 通过上述知识点的学习和实践,考生能够深入理解Java编程的核心概念,并具备解决实际问题的...

    java试题大全最最全面的试题

    理解泛型的基本概念、通配符和泛型方法,以及在集合和自定义类中应用泛型,可以提高代码的可读性和可维护性。 九、JVM内存模型 了解JVM(Java Virtual Machine)的工作原理,特别是内存区域(如堆、栈、方法区、...

    Java 实用编程30例

    这个实例可能会讲解ArrayList、LinkedList、HashSet、HashMap等常见集合类的使用,以及它们之间的区别和选择原则。 5. **实例11:IO流操作** Java的IO流系统强大而灵活。实例11可能涉及文件读写、字符流和字节流...

    南京理工大学java卷子合集(计算机学院)

    考生需要了解各集合类的特点、操作方法以及如何选择合适的集合类型。 5. **输入输出流**:I/O流用于处理数据的读写,包括文件操作、网络通信等。考生需掌握InputStream、OutputStream、Reader、Writer等基本流,...

    [北京圣思园Java培训教学视频]Java.SE.Lesson.4_code.rar

    - 类的加载与Class对象:通过反射动态获取类的信息并操作。 - Method、Constructor和Field对象:调用方法、构造器和访问字段。 - 动态代理:使用Proxy和InvocationHandler实现运行时绑定。 8. **枚举类型** - ...

    JAVA培训讲座

    8. **反射机制**:通过反射动态获取类信息、创建对象、调用方法,及其在实际开发中的应用。 9. **泛型**:理解泛型的引入目的,如何使用泛型类、泛型方法,以及类型擦除的概念。 10. **JVM原理**:探讨Java虚拟机...

    《安全编程技术》教学大纲.docx

    6. **泛型的内部机制和运用**:探讨泛型的基本概念和内部工作原理,包括通过反射获取泛型的实际参数类型,以及泛型通配符的扩展应用。 课程目标与计算机科学与技术专业的毕业要求紧密关联,旨在培养学生的社会责任...

    java八股文共10章八股文.rar

    - 泛型与集合:泛型在集合框架中的应用,避免类型转换异常。 10. **注解** - 自定义注解:创建、使用和解析自定义注解。 - 元注解:@Override、@Deprecated、@ SuppressWarnings等元注解的作用和使用场景。 ...

    java基础教程

    9. **集合框架**:介绍ArrayList、LinkedList、HashSet、HashMap等集合类的使用,以及泛型的概念。 10. **IO流**:学习输入/输出流的概念,包括文件操作、字符流和字节流,以及缓冲区的概念。 11. **多线程**:...

    JAVA笔试题目大集合以及答案

    - 泛型:类型参数化,限制集合中存储的数据类型。 5. **多线程**: - 创建线程:通过实现Runnable接口或继承Thread类。 - 线程同步:synchronized关键字,wait(), notify(), notifyAll()方法,Lock接口。 - ...

    最新SCJP考试题库

    6. **集合框架**:理解ArrayList、LinkedList、HashSet、HashMap等集合类的特性和使用,以及迭代器(Iterator)的概念。 7. **内存管理**:了解Java的垃圾回收机制,理解引用类型的区别(如强引用、软引用、弱引用...

    java scjp6.5考试题库

    8. **反射机制**:反射允许在运行时动态地获取类的信息并操作类的对象,包括Class类的使用,以及如何通过反射创建对象、调用方法和访问字段。 9. **JVM(Java虚拟机)**:了解JVM的工作原理,包括类加载机制,堆...

    5.0_S1-Java内测笔试题(带答案)

    3. **集合框架**:ArrayList、LinkedList、HashSet、HashMap等集合类的使用和它们之间的区别,以及如何选择合适的集合类型解决问题。 4. **IO流**:输入/输出流的基本概念,包括字节流和字符流的区别,以及缓冲区、...

Global site tag (gtag.js) - Google Analytics