lzth.net
当前位置:首页 >> jAvA 反射 调用无参数方法? >>

jAvA 反射 调用无参数方法?

通过Java反射调用无参数方法,这是个测试用的例子,通过反射调用对象的方法,代码如下:import java.lang.reflect.Method; import java.lang.reflect.InvocationTargetException; /** * Created by IntelliJ IDEA. * File: TestRef.java * User: Administrator

并没有废弃吧,只是用的少而已 Class <?> cls = Class.forName("com.man.demo.Person") ; Object obj = cls.newInstance(); //调用无参构造

其实也可以不提供,只不过这样的话构造对象的时候一定要先拿到有参数的构造方法,然后赋予参数再构建对象.比如package cn.mldn.demo;import java.lang.reflect.Constructor;class Person{ // CTRL + K private String name; private int age;

构造函数和method类似,介绍一下获取method的方法.首先定义个类,里面定义两个方法.public class TestRflectionFather { public void showarray(String[] str){ for(String ss:str){ System.out.println(ss); } } public void showarray(){ System.out.print

在调用时,用获得的Method的对象来调用invoke方法,例:Method对象.invoke(你定义类的类对象,new Object[] {参数}).此处传递的参数与上面定义的参数类型

把所有方法找出来,然后通过方法名字来推测是哪个,你既然打算反射,当然是别人通过一个字符串把要调用的方法名告诉你了,如果你连方法名都不知道,就表示你不知道要自己做什么,如果这个反射是有“人”通过界面输入来动态地执行那就表示那个“人”不知道自己要做什么?这就是另一个问题了,不是 Java 问题.

答案是没法获取.首先反射获取的是类、属性、或者方法的定义,就拿方法来说,方法的定义是什么呢?方法的定义包括:方法名,方法的参数类型列表,方法的返回值类型.方法的参数类型列表包括什么呢?包括每个参数的顺序和参数类型.参数值是什么?是在这个方法被调用的时候传入的参数叫做参数值.反射呢,是获取的它的定义,并不牵扯调用,所以说没法获取.

java反射调用可变参数的方法的方式是传入objects参数,如下代码:public class Reflect { public static void main(String[] args) throws Exception { Class> clazz = Single.class; Single single = (Single) clazz.newInstance(); List list = new ArrayList(){

写null弹出的警告是无影响的,可以用加@SuppressWarnings屏蔽手册上推荐写法是.getMethod("show",(Class<?>[]) null);强制转型另外一个符合类型的写法是.getMethod("show", new Class<?>[0]);

简单给你个例子:import java.lang.reflect.Method;public class CallMethod { public static void main(String[] args) { CallMethod call=new CallMethod(); try { Method method=CallMethod.class.getMethod("sunvins",(Class[])null); method.invoke(call, (

网站首页 | 网站地图
All rights reserved Powered by www.lzth.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com