java 反射的问题
package fff;import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
public class Text {
/**
* @param args
* @throws Exception
* @throws SecurityException
*/
public static void main(String[] args) throws SecurityException, Exception {
String fileName="fff.Student";
//Student s=new Student();
Class clazz=Class.forName(fileName.trim());
Constructor constructor=clazz.getConstructor();
Object s=constructor.newInstance();
Method method=clazz.getMethod("setAge", Integer.class);
method.invoke(s, 12);
}
}
Student这个类的class文件是我从其他地方考过来,放到bin/fff目录下的(Student.class,这个文件已经确认正确)为什么运行的时候会报错
Exception in thread "main" java.lang.NoClassDefFoundError: fff/Student (wrong name: com/guo/big/Student)
----------------解决方案--------------------------------------------------------
然后,我调用fff包里,手写在fff里的类,能运行,
为什么调用拷过来的class文件会报错。。。?
----------------解决方案--------------------------------------------------------
wrong name: com/guo/big/Student 我感觉会不会是package的问题呢
复制的话package是不会修改的。
----------------解决方案--------------------------------------------------------
回复 3楼 hhwz
那该怎么改啊,初学java,好蛋疼。。。 ----------------解决方案--------------------------------------------------------
如果 是package的问题。那么新建一个复制代码 改掉package
要么就用反编译 工具 修改这个CLASS
----------------解决方案--------------------------------------------------------
好麻烦。。。
----------------解决方案--------------------------------------------------------
这不算麻烦 了吧
----------------解决方案--------------------------------------------------------
是不是修饰符没有改过来呀?
----------------解决方案--------------------------------------------------------
回复 8楼 javarobot
什么是修饰符哈?学java没多久,不知道。。 ----------------解决方案--------------------------------------------------------
已搞定,是package的问题
----------------解决方案--------------------------------------------------------