读书人

关于getDelaredMethod()方法的有关问题

发布时间: 2012-02-25 10:01:48 作者: rapoo

关于getDelaredMethod()方法的问题;答完结贴;谢谢了;

Java code
String str = "aa";Class cla = Class.getClass();Method mt = cla.getDeclaredMethod("put",??);........//另一个类;public class aa{ public void put(){   ........}}

想请问下,getDeclaredMethod("put",??);的第二个参数到底是什么啊?参数是 Class 对象的一个数组,它按声明顺序标识该方法的形参类型;api上是这样写的;怎么会是Class对象的数组呢?或者说改参数表示所调用方法的形参,当我的put()方法没有参数传入的时候能用Null来代替吗?
二、我的另一个类中必须要有main()函数吗?


[解决办法]
一、是一个Class类型的数组,就是说,我根据你的方法名和你的参数类型列表,我就可以知道你要的那个方法,
如果没有参数的话,是可以用null来替代的

二、如果你要是运行的话,当然要有一个类中有main函数了,如果不运行的话,自然就不需要了.

这行定错了吧
Java code
Class cla = Class.getClass();
[解决办法]
就是你要得到的这个方法的参数类型的数组


比如一个方法定义如下

put(String str,Date date) {

}
你的方法有两个参数,一个是String ,一个是Date
就应该通过下面的语句得到这个Method对象
Method mt = cla.getDeclaredMethod("put",new Class[]{String.class,Date.class});


没有参数 就传一个null过去就可以了


只有你的启动类才需要main函数


[解决办法]
探讨
Method中的invoke()方法

public Object invoke(Object obj,
Object... args)
obj - 从中调用底层方法的对象
args - 用于方法调用的参数
很迷糊……希望高手解释下……

读书人网 >J2SE开发

热点推荐