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)、集合框架、网络编程和泛型。以下是对这些主题的详细讲解: 1. **多线程**: - ...
获取类中的变量(Field) 获取类中的方法(Method) 获取类的构造器(Constructor) 获取注解 通过反射调用方法反射的应用场景 Spring 的 IOC 容器反射 + 抽象工厂模式 JDBC 加载数据库驱动类反射的优势及缺陷 增加程序的...
14. **泛型**:泛型是Java SE 5.0引入的新特性,用于提供类型安全,减少类型转换,面试中可能会涉及泛型类、泛型方法和通配符的使用。 15. **Lambda表达式**:Java 8引入的Lambda表达式简化了函数式编程,理解其...
3. Collection与Collections的区别:Collection是所有集合类的父接口,Collections则是操作集合的工具类。 三、多线程 1. 线程的创建:通过Thread类和Runnable接口创建线程。 2. 线程同步:synchronized关键字,...
- **协变**:在泛型委托中允许子类型替换基类型。 - **逆变**:在泛型委托中允许基类型替换子类型。 #### 六十六、如何:合并委托(多路广播委托) - **多路广播**:展示如何将多个委托合并为一个。 #### 六十七、...
9. **反射机制**:理解反射的概念,如何通过反射动态获取类信息、创建对象、调用方法。 10. **泛型**:理解泛型的作用,知道如何定义泛型类、泛型接口、泛型方法,并能避免类型擦除带来的问题。 11. **JVM**:了解...
4. **集合框架**:熟悉ArrayList、LinkedList、HashSet、HashMap等常用集合类,了解它们的特性、性能差异以及应用场景。理解并发环境下集合类的线程安全问题。 5. **多线程**:理解线程的概念,掌握Thread类和...
12. **Java API使用**:熟悉Java标准库中的各种类和接口,如集合类、IO流、日期时间API、多线程API等,是高效编程的基础。 通过上述知识点的学习和实践,考生能够深入理解Java编程的核心概念,并具备解决实际问题的...
理解泛型的基本概念、通配符和泛型方法,以及在集合和自定义类中应用泛型,可以提高代码的可读性和可维护性。 九、JVM内存模型 了解JVM(Java Virtual Machine)的工作原理,特别是内存区域(如堆、栈、方法区、...
这个实例可能会讲解ArrayList、LinkedList、HashSet、HashMap等常见集合类的使用,以及它们之间的区别和选择原则。 5. **实例11:IO流操作** Java的IO流系统强大而灵活。实例11可能涉及文件读写、字符流和字节流...
考生需要了解各集合类的特点、操作方法以及如何选择合适的集合类型。 5. **输入输出流**:I/O流用于处理数据的读写,包括文件操作、网络通信等。考生需掌握InputStream、OutputStream、Reader、Writer等基本流,...
- 类的加载与Class对象:通过反射动态获取类的信息并操作。 - Method、Constructor和Field对象:调用方法、构造器和访问字段。 - 动态代理:使用Proxy和InvocationHandler实现运行时绑定。 8. **枚举类型** - ...
8. **反射机制**:通过反射动态获取类信息、创建对象、调用方法,及其在实际开发中的应用。 9. **泛型**:理解泛型的引入目的,如何使用泛型类、泛型方法,以及类型擦除的概念。 10. **JVM原理**:探讨Java虚拟机...
6. **泛型的内部机制和运用**:探讨泛型的基本概念和内部工作原理,包括通过反射获取泛型的实际参数类型,以及泛型通配符的扩展应用。 课程目标与计算机科学与技术专业的毕业要求紧密关联,旨在培养学生的社会责任...
- 泛型与集合:泛型在集合框架中的应用,避免类型转换异常。 10. **注解** - 自定义注解:创建、使用和解析自定义注解。 - 元注解:@Override、@Deprecated、@ SuppressWarnings等元注解的作用和使用场景。 ...
9. **集合框架**:介绍ArrayList、LinkedList、HashSet、HashMap等集合类的使用,以及泛型的概念。 10. **IO流**:学习输入/输出流的概念,包括文件操作、字符流和字节流,以及缓冲区的概念。 11. **多线程**:...
- 泛型:类型参数化,限制集合中存储的数据类型。 5. **多线程**: - 创建线程:通过实现Runnable接口或继承Thread类。 - 线程同步:synchronized关键字,wait(), notify(), notifyAll()方法,Lock接口。 - ...
6. **集合框架**:理解ArrayList、LinkedList、HashSet、HashMap等集合类的特性和使用,以及迭代器(Iterator)的概念。 7. **内存管理**:了解Java的垃圾回收机制,理解引用类型的区别(如强引用、软引用、弱引用...
8. **反射机制**:反射允许在运行时动态地获取类的信息并操作类的对象,包括Class类的使用,以及如何通过反射创建对象、调用方法和访问字段。 9. **JVM(Java虚拟机)**:了解JVM的工作原理,包括类加载机制,堆...
3. **集合框架**:ArrayList、LinkedList、HashSet、HashMap等集合类的使用和它们之间的区别,以及如何选择合适的集合类型解决问题。 4. **IO流**:输入/输出流的基本概念,包括字节流和字符流的区别,以及缓冲区、...