Method1?这个类是你自己写的吗?java.lang.reflect 包中只有 Method 类(注意后边是没有数字“1”的哦),许是你写错了,把 Method1 换成 Method 试试?建议楼主把代码贴出来,呵呵。
解决方案 »
- hibernate的find()方法报错
- GridBagLayout小问题
- 配置OpenSessionInViewFilter后出现问题
- 问weblogic下载地址
- Java web service 方法使用
- 谁能给我段axis1.3下将符合SOAP规范的document转化成SOAP消息的代码啊?
- axis 中如何获得服务器端的SOAP信息
- struts|jsp 问个小问题,大家帮忙啊!
- 请问:APACHE、TOMCAT、JBOSS各自对计算机硬件的最低要求
- Java的xml文件处理,有什么好书推荐的?
- tomcat6 servlet 的错误,在线等,谢谢了
- CVS checkout项目文件出现乱码!
public class Method1{public static void main(String args[]) {
try {
Class cls = Class.forName("method1");
Method methlist[] = cls.getDeclaredMethods();
for (int i = 0; i < methlist.length; i++) {
Method m = methlist[i];
System.out.println("name = " + m.getName());
System.out.println("decl class = " + m.getDeclaringClass());
Class pvec[] = m.getParameterTypes();
for (int j = 0; j < pvec.length; j++)
System.out.println("param #" + j + " " + pvec[j]);
Class evec[] = m.getExceptionTypes();
for (int j = 0; j < evec.length; j++)
System.out.println("exc #" + j + " " + evec[j]);
System.out.println("return type = " + m.getReturnType());
System.out.println("-----");
}
} catch (Throwable e) {
System.err.println(e);
}
}
}
将method1改为Method1后运行还是不行:java.lang.ClassNotFoundException: Method1
再把Class.forName("method1");中的method1首字母改成大写就成了。
public class Method1{ public static void main(String args[]) {
try {
Class cls = Class.forName("Method1");
Method methlist[] = cls.getDeclaredMethods();
for (int i = 0; i < methlist.length; i++) {
Method m = methlist[i];
System.out.println("name = " + m.getName());
System.out.println("decl class = " + m.getDeclaringClass());
Class pvec[] = m.getParameterTypes();
for (int j = 0; j < pvec.length; j++)
System.out.println("param #" + j + " " + pvec[j]);
Class evec[] = m.getExceptionTypes();
for (int j = 0; j < evec.length; j++)
System.out.println("exc #" + j + " " + evec[j]);
System.out.println("return type = " + m.getReturnType());
System.out.println("-----");
}
} catch (Throwable e) {
System.err.println(e);
}
}
}
则你应该写:Class.forName( "test.Method1" );
import java.lang.reflect.*;public class Method1 {
public static void main(String args[]) {
try {
Class cls = Class.forName("Method1");
Method methlist[] = cls.getDeclaredMethods();
for (int i = 0; i < methlist.length; i++) {
Method m = methlist[i];
System.out.println("name = " + m.getName());
System.out.println("decl class = " + m.getDeclaringClass());
Class pvec[] = m.getParameterTypes();
for (int j = 0; j < pvec.length; j++)
System.out.println("param #" + j + " " + pvec[j]);
Class evec[] = m.getExceptionTypes();
for (int j = 0; j < evec.length; j++)
System.out.println("exc #" + j + " " + evec[j]);
System.out.println("return type = " + m.getReturnType());
System.out.println("-----");
}
} catch (Throwable e) {
System.err.println(e);
}
}
}
Class cls = Class.forName( "Method1" );
改成:
Class cls = Method1.class;
Class cls = Method1.class;第二种:
Class cls = Class.forName("com.mms.reflection.Method1");
因为 Method1.class 所得到的也是与 Method1 相关的 Class 对象,呵呵。
这样吧,给你段代码,你一定能明白的,呵呵:package com.mms.reflection;import java.lang.reflect.Method;
public class Method1{ public static void main(String args[]) throws ClassNotFoundException {
Class c1 = Method1.class;
Class c2 = Class.forName("com.mms.reflection.Method1");
if( c1 == c2 )
System.out.println( "这两玩艺原来是同一个东西!!" );
}
}
Class c2 = Class.forName("com.mms.reflection.Method1");内存中一样.