java类来创建自身的实例

java类来创建自身的实例,java,Java,我正在尝试使用反射创建holding类的实例,但我一直得到以下异常 java.lang.ClassNotFoundException:类 com.myproject.fresh.stubClasses.TestModel位于 java.net.URLClassLoader$1.runURLClassLoader.java:202 at 位于的java.security.AccessController.doPrivilegeEdNative方法 java.net.URLClassLoader.f

我正在尝试使用反射创建holding类的实例,但我一直得到以下异常

java.lang.ClassNotFoundException:类 com.myproject.fresh.stubClasses.TestModel位于 java.net.URLClassLoader$1.runURLClassLoader.java:202 at 位于的java.security.AccessController.doPrivilegeEdNative方法 java.net.URLClassLoader.findClassURLClassLoader.java:190 at java.lang.ClassLoader.LoadClassLoader.java:306 at sun.misc.Launcher$AppClassLoader.loadClassLauncher.java:301 at java.lang.ClassLoader.LoadClassLoader.java:247 at 位于的java.lang.Class.ForName0本机方法 java.lang.Class.forNameClass.java:171

我做错了什么?

问题是getClass.toString返回例如com.myproject.fresh.stubClasses.TestModel类,在开始时有一个游离类。如果改用getName,它应该可以工作:

Class<?> clazz = Class.forName(getClass().getName());
问题是getClass.toString返回例如com.myproject.fresh.stubClasses.TestModel类,在开始时有一个游离类。如果改用getName,它应该可以工作:

Class<?> clazz = Class.forName(getClass().getName());
这一行在这里:

Class<?> clazz = Class.forName(getClass().toString());
类名之前的无关类文本正在抛出'forName'方法

最后,这条线应该是这样的:

Class<?> clazz = Class.forName(getClass().getName());
这一行在这里:

Class<?> clazz = Class.forName(getClass().toString());
类名之前的无关类文本正在抛出'forName'方法

最后,这条线应该是这样的:

Class<?> clazz = Class.forName(getClass().getName());

仅使用getClass.newInstance有什么问题?

仅使用getClass.newInstance有什么问题?

getClass.toString替换为getClass.getNamegetClass.toString替换为getClass.getName
public class Test
{
    public static void main(String[] args)
    {
        System.out.println(Test.class.toString()); //prints "class <package>.Test"
        System.out.println(Test.class.getName()); //prints "<package>.Test"
    }
}
Class<?> clazz = Class.forName(getClass().getName());