[英]java.lang.IllegalAccessException:.cannot access the member of class CrossOrigin with modifiers "private static"
[英]java.lang.IllegalAccessException: Class z.y.x.u.SimpleCompileTest can not access a member of class MyClass with modifiers “”
在使用反射 API 時,我收到以下錯誤
java.lang.IllegalAccessException: Class z.y.x.u.SimpleCompileTest can not access a member of class MyClass with modifiers ""
at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:65)
at java.lang.Class.newInstance0(Class.java:351)
at java.lang.Class.newInstance(Class.java:310)
at z.y.x.u.SimpleCompileTest.reflectionCall(SimpleCompileTest.java:44)
at z.y.x.f.RunFunctionality.doPost(RunFunctionality.java:116)
at z.y.x.f.RunFunctionality.doGet(RunFunctionality.java:53)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
這是我的偽代碼
public static void reflectionCall() {
ClassLoader classLoader = SimpleCompileTest.class.getClassLoader();
try{
Class aClass = classLoader.loadClass("MyClass");
Object t = aClass.newInstance();
System.out.println("aClass.getName() = " + aClass.getName());
Method method = aClass.getDeclaredMethod ("myMethod", null);
method.setAccessible(true);
method.invoke(t, null);
.....
}
當發生以下錯誤時,它會拋出錯誤
Object t = aClass.newInstance();
MyClass.class 文件在 jar 文件中,它是在執行時動態添加到類路徑中的 MyClass.java 的內容是
public class MyClass {
public MyClass() {
// TODO Auto-generated constructor stub
}
public void myMethod(){
System.out.println("My Method Called");
}
}
無法弄清楚,問題是什么,更感謝您的幫助。
異常消息是
java.lang.IllegalAccessException: Class z.y.x.u.SimpleCompileTest can not access a member of class MyClass with modifiers “”
請注意""
缺少修飾符值。 Class#newInstance()
的 javadoc 狀態
拋出:
IllegalAccessException - 如果類或其空構造函數不可訪問。
換句話說,您的MyClass
構造函數不可訪問。 從你的代碼來看,它似乎是,但我猜你復制粘貼錯了。 它很可能缺少public
修飾符,即。 它具有默認的可訪問性。 由於該類和您的SimpleCompileTest
類位於不同的包中,因此構造函數不可見。
Spring Boot 也有類似的問題,消息略有不同,但來自 @sotirios-delimanois 的解決方案有所幫助:
Class org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor can not access a
member of class com.etc.bla.model.entity.BackendBaseEntity with modifiers "public"
BackendBaseEntity
類確實具有包可見性,並將其public
解決了該錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.