java反射:根据给定类名实例化类并调用其方法
来源:互联网 发布:php文章管理系统源码 编辑:程序博客网 时间:2024/05/17 01:51
实习期间遇到一个题,题目大致是从一个文件中读取内容,文件格式如下:类名:属性名=值,属性名=值……。有若干行这样的数据,要求根据文件内容实例化类并且为其属性赋值,最后调用该类方法,输出类的各属性。
之前一直不会如何讲给定的类实例化,学习后代码如下:
package com.qunar.fresh.wangchaowang.exam1.test;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;/** * Created by wangchao on 15-3-13. */public class Test { public static void main(String[] args) { try { // 根据给定的类名初始化类 Class catClass = Class.forName("com.qunar.fresh.wangchaowang.exam1.test.Cat"); // 实例化这个类 Object obj = catClass.newInstance(); // 获得这个类的所有方法 Method[] methods = catClass.getMethods(); // 循环查找想要的方法 for(Method method : methods) { if("setName".equals(method.getName())) { // 调用这个方法,invoke第一个参数是类名,后面是方法需要的参数 method.invoke(obj, "Tom" ); } } // 调用指定方法 catClass.getMethod("shout").invoke(obj, null); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } catch (NoSuchMethodException e) { e.printStackTrace(); } }}class Cat { private String name; public void setName(String name) { this.name = name; } public void shout() { System.out.println("My name is " + this.name + "!"); }}
0 0
- java反射:根据给定类名实例化类并调用其方法
- Java如何根据类名和方法名创建类的实例,并调用对应方法?
- Java反射---根据类名创建实例
- 根据类名字符串实例化类,并调用类的方法或函数
- java 利用反射获取类,实例化,并执行其内部方法
- java反射获取类实例并调用私有方法
- Java 反射 根据类名创建类实例
- Java反射,根据类名创建带参数的实例
- Java反射,根据类名创建带参数的实例
- Java反射,根据类名创建带参数的实例
- 【经典实例】利用C#反射动态编译代码,创建类的实例,并调用其成员
- java反射调用配置文件构造类对象,使用其方法
- java反射调用配置文件构造类对象,使用其方法
- java通过反射,只需要传了类名和参数,就可以根据不同参数的构造方法实例化对象
- Java反射:根据属性名得到其Set方法设置它的值
- java中Property类配置文件,反射创建实例并调用这个类的方法
- java中利用反射机制实现调用给定为字符串的方法名
- java中利用反射机制实现调用给定为字符串的方法名
- commons logging 源代码分析
- MySQL中独有的函数
- sql数据类型总结
- 【Struts框架】第一节Action-struts访问request等引用方法一
- 在编写servlet时候import javax.servlet.annotation.WebServlet;问题
- java反射:根据给定类名实例化类并调用其方法
- html的语法就是他的规则
- 第一章《马上动手写一个最小的操作系统》
- 窄依赖的pipeline作用对象分析
- 【Git使用详解】使用Egit克隆项目到本地图解
- hbuilder egit插件的安装使用--项目文件丢失的教训
- 为何用二维码扫描App扫描微信名片都能直接跳转到微信?这是如何实现的
- HTML可使网站运营更加游刃有余
- :二飞日志» web app与app的区别,即html5与app的区别