gpt4 book ai didi

java - 反射 - 示例代码 - ClassNotFoundException 错误

转载 作者:行者123 更新时间:2023-12-01 18:32:15 25 4
gpt4 key购买 nike

我正在尝试这个反射示例代码:

import java.lang.reflect.Method;

class Test
{

public Test()
{ }

public void sayHello()
{
System.out.println("Hello");
}
}

public class Foo
{

public static void main (String[] args) throws Exception
{
Class<?> clazz = Class.forName("Test");
Method method = clazz.getMethod("sayHello");
Object instance = clazz.newInstance();
method.invoke(instance);

}
}

以下是显示的错误:

 run:
Exception in thread "main" java.lang.ClassNotFoundException: Test
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at foo.Foo.main(Foo.java:29)
Java Result: 1

如何解决,我在代码中解决了上述错误。我也给了 Foo.Test 但它根本不起作用。

请帮我解决这个问题。谢谢您

最佳答案

从您提供的堆栈跟踪来看,您似乎有一个包 foo。为了使其正常工作,请尝试将您的实现替换为以下内容:

Class<?> clazz = Class.forName("foo.Test");

注意永远记住,为了使反射起作用,您将需要提供完整的类名,包括包。

关于java - 反射 - 示例代码 - ClassNotFoundException 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23679246/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com