反射获取对象
来源:互联网 发布:威武猫店铺淘宝客软件 编辑:程序博客网 时间:2024/06/05 12:48
package com.reflect;import java.lang.reflect.Constructor;import java.lang.reflect.InvocationTargetException;/** * 反射获取类,以及对象 * @author Sailing * */public class TestClassForName{public static void main(String[] args) throws Exception{Class<?> clazz = TestClassForName.getClazz1("com.reflect.Person");//Class<?> clazz = TestClassForName.getClazz2();//Class<?> clazz = TestClassForName.getClazz3();TestClassForName.doSomething(clazz);}/** * 根据类的全名,forName方法 获取【推荐使用】 * @param str * @return * @author Sailing */private static Class<?> getClazz1(String str){Class<?> clazz =null;try {clazz = Class.forName(str);} catch (ClassNotFoundException e) {e.printStackTrace();}return clazz;}/** * 根据类的 .class方法获取 * @return * @author Sailing */private static Class<?> getClazz2(){Class<?> clazz = Person.class;return clazz;}/** * 根据对象来获取 * @return * @author Sailing */private static Class<?> getClazz3(){Person p = new Person();Class<?> clazz = p.getClass();return clazz;}private static void doSomething(Class<?> clazz) throws InstantiationException, IllegalAccessException{System.out.println("class---"+clazz);Object p =TestClassForName.getInstance1(clazz);//Object p =TestClassForName.getInstance2(clazz);System.out.println(p);}/** * 由类获取对象 * @param obj * @return * @throws InstantiationException * @throws IllegalAccessException * @author Sailing */private static Object getInstance1(Class<?> clazz) throws InstantiationException, IllegalAccessException{Object instance = clazz.newInstance();return instance;}private static Object getInstance2(Class<?> clazz){Constructor<?> cons;Object instance = null;try {cons = clazz.getConstructor(new Class[] {});try {instance = cons.newInstance(new Object[]{});} catch (InstantiationException | IllegalAccessException | IllegalArgumentException| InvocationTargetException e) {// TODO Auto-generated catch blocke.printStackTrace();}} catch (NoSuchMethodException | SecurityException e) {// TODO Auto-generated catch blocke.printStackTrace();}return instance;}}
0 0
- 反射获取对象属性
- 反射获取 application对象
- 反射获取对象
- 反射获取构造器对象
- 反射之获取对象信息
- 反射之获取对象信息
- 反射获取顶层activity对象
- 反射获取对象的属性值
- java反射之获取Class对象
- 利用反射获取并使用自定义对象
- 反射(reflect)--获取字节码文件对象
- Java反射(一) : 获取Class对象
- C#利用反射获取对象属性值
- 通过反射获取,修改对象变量
- Java反射基础(一)--Class对象获取
- 反射获取构造方法并创建对象
- 反射获取Field和Method对象
- java反射之获取Class对象
- 新手学习Docker之------如何上传下载镜像
- Jenkins进阶系列之——14配置Jenkins用户和权限
- 一:《方田》-- 8
- 报错could not find the main class:java.overWrite.overWrite.Program will exit.的解决方法
- Java语言基础简介(一)
- 反射获取对象
- oracle job有定时执行的功能,可以在指定的时间点或每天的某个时间点自行执行任务。
- 内核进程屏蔽中断加死锁一定可以触发nmi吗
- android自定义拍照界面SurfaceView+Camera
- linux 启动/停止 aoache服务
- NSString转NSArray
- iOS 理解@property和set&get方法
- 我要背单词
- 通过AngularJS实现图片上传及缩略图展示(学习)