反射机制详解
来源:互联网 发布:淘宝能搜索图片吗 编辑:程序博客网 时间:2024/06/07 19:52
import java.lang.reflect.Method;public class TestReflection {public static void main(String[] args) throws Exception {String str = "Other";Class c=Class.forName("com.yangfan.反射.Other");Object object = c.newInstance();System.out.println(object);Method[] method = c.getMethods();for(Method m:method){if (m.getName().equals("Imple")) {System.out.println("被调用方法名称:"+m.getName());m.invoke(object, 1001,1002);//这是一个可变参数!}}}}/*Other.clas is loaded!Other is intingcom.yangfan.反射.Other@c17164被调用方法名称:Imple我是Imple方法!传入参数为:10012003 */ class Other{ static{ System.out.println("Other.clas is loaded!"); } public Other(){ System.out.println("Other is inting"); } public void Imple(int i,int j){ System.out.println("我是Imple方法!传入参数为:"+i); int k=i+j; System.out.println(k); } }
1.学习反射前先了解classloader,下面这些是jdk已有的classloader ,其中bootstrap是c写的,最先启动加载java核心类的classloader 如String类
2.jdk classloader的层次关系,注意这是对象这间的关系,不是类的继承关系,对象间的子对象有指向父对象的引用,
用一个小的while可以得出所有的classloader
public class ClassLoaderTest {public static void main(String[] args) {// TODO Auto-generated method stub//System.out.println(ClassLoaderTest.class.getClassLoader().getClass().getName());ClassLoader c = ClassLoaderTest.class.getClassLoader();while (c!=null) {System.out.println(c.getClass().getName());c = c.getParent();}}结果:sun.misc.Launcher$AppClassLoader sun.misc.Launcher$ExtClassLoader}
- java反射机制详解!
- java 反射机制详解
- JAVA反射机制详解
- java反射机制详解
- 反射机制详解
- Java反射机制详解
- Java反射机制详解
- java反射机制详解
- Java反射机制详解
- Java反射机制详解
- JAVA反射机制详解
- java反射机制详解
- Java反射机制详解
- 反射机制详解
- 反射机制详解
- Java反射机制详解
- java反射机制详解
- Java反射机制详解
- Effective c++学习笔记条款14:在资源管理类型中小心copying行为
- java经典题目
- poj1326(Mileage Bank)
- C#数据结构和算法学习系列十----正则表达式
- 周鸿袆:从程序员创业谈起
- 反射机制详解
- boj 212(栈模拟)
- 新浪微博iOS版SDK
- TL1(二)-GR833
- 内存对齐
- VMware Workstation提供的可编程接口
- 适合我们这些初级学员的学习
- 适合新手学习的Java语言 例题 【3】
- 众多Android 开源项目推荐,给力工作给力学习