反射java代码 反射 java

关于java反射,帮忙看一下代码

import java.lang.reflect.InvocationTargetException;

创新互联专业为企业提供太原网站建设、太原做网站、太原网站设计、太原网站制作等企业网站建设、网页设计与制作、太原企业网站模板建站服务,十多年太原做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

import java.lang.reflect.Method;

import java.lang.reflect.Modifier;

public class ApplicationRunner {

public void run(final String canonicalName){

try {

final Class type = Class.forName(canonicalName);

final Object classHost = type.newInstance();

for(final Method method : type.getDeclaredMethods()){

if(isRunnableMethod(method)){

method.invoke(classHost);

}

}

} catch (final ClassNotFoundException e) {

e.printStackTrace();

} catch (final InstantiationException e) {

e.printStackTrace();

} catch (final IllegalAccessException e) {

e.printStackTrace();

} catch (final InvocationTargetException e) {

e.printStackTrace();

}

}

private boolean isRunnableMethod(final Method method){

return method.getAnnotation(Test.class) != null

Modifier.isPublic(method.getModifiers())

method.getParameterTypes().length == 0

method.getReturnType().equals(void.class);

}

public static void main(String[] args) {

new ApplicationRunner().run(TestHost.class.getCanonicalName());

}

}

你可以试试我的方法. 而且我建议你直接传对象进去解析类.这样会容易很多

在JAVA中,怎么利用反射获取一个方法?

java的反射用法:(异常请自行处理)

①找到类:Class cl = Class.forName("java.util.Date");

②创建对象(要求这个类中含有空参数的构造方法):Object obj = cl.newInstence();

③根据名称和参数找方法:Method method1 = cl.getMethod("getTime");//如果没有参数不用写第二个参数如果有参数的如:Method method2 = cl.getMethod("setTime",long.class);

④在某个对象上面执行方法,Object result = method1.invoke(obj);//如果有参数的Object result = method2.invoke(obj,21317362721);

执行的方如果有返回值,将返回值返回,否则返回null

java开发工程师岗位职责:

1、负责公司网站开发和维护;

2、负责对网站进行实施,测试;

3、负责现有网站的维护和升级;

4、负责解决开发过程中的技术问题;

5、负责网站开发文档编写工作;

6、统一代码风格、监督团队开发、落实测试、验收代码质量;

7、参与软件系统设计,能编写代码。

JAVA 反射代码求解释

里面的注释已经很清楚了。

首先用Class.forName去取到Class对象,java中Class、Method都是一种对象(相对其它对象要特殊一点,因为它们代表类的结构),Class中包含Method数组,也就是Class的方法,这里getDeclaredMethods()取到所有方法对象到数组method中,然后用for循环打印每一个方法toString信息。

用java实现类和对象的反射,代码最好有注释,谢谢

给你一个小的实例代码:

import java.lang.reflect.Method;

import java.lang.reflect.InvocationTargetException;

public class test {

public static void main(String args[]) throws NoSuchMethodException,

IllegalAccessException, InvocationTargetException {

Foo foo = new Foo("这个一个Foo对象!");

Class clazz = foo.getClass();

Method m1 = clazz.getDeclaredMethod("outInfo");

Method m2 = clazz.getDeclaredMethod("setMsg", String.class);

Method m3 = clazz.getDeclaredMethod("getMsg");

m1.invoke(foo);

m2.invoke(foo, "重新设置msg信息!");

String msg = (String) m3.invoke(foo);

System.out.println(msg);

}

}

class Foo {

private String msg;

public Foo(String msg) {

this.msg = msg;

}

public void setMsg(String msg) {

this.msg = msg;

}

public String getMsg() {

return msg;

}

public void outInfo() {

System.out.println("这是测试Java反射的测试类");

}

}

JAVA反射机制代码

1.就是说根据你传进去的对象类型返回相应的代理。这个不是在静态编译时决定的, 而是运行时决定的,所以叫做动态。this指的是当前InvocationHandler对象,也就是new MyInvocationHandler()出来的。

2.执行RealSubject中的say方法,因为这个时候实际的对象是bind(new RealSubject())。

3.没有调用自己啊。


文章题目:反射java代码 反射 java
本文路径:http://bzwzjz.com/article/hpdoph.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 成都品牌网站设计 成都网站制作 营销型网站建设 广安网站设计 成都网站建设公司 重庆网站建设 成都网站设计公司 企业网站设计 网站建设费用 成都网站建设流程 成都网站建设 网站制作报价 成都网站设计 重庆网站制作 重庆网站设计 成都网站建设公司 网站设计公司 营销网站建设 高端品牌网站建设 成都响应式网站建设公司 定制级高端网站建设 做网站设计