Java 哪些类是不可修改的,不能嵌入,有没有办法绕过它?
当尝试插入类(如Java 哪些类是不可修改的,不能嵌入,有没有办法绕过它?,java,instrumentation,internals,Java,Instrumentation,Internals,当尝试插入类(如java.util.ArrayList)时,我得到的是java.lang.instrument.UnmodifiableClassException 您可以使用Instrumentation.isModifiableClass()检查类是否可修改 我的问题是: 哪些课程不是虚构的?如何确定 有没有办法绕过这个 顺便说一句,我在使用HotSpot或JLocking时没有遇到这个异常,只有在使用IBMJVM时 谢谢, Gilad您应该在您的仪器上调用isModifiableClass
java.util.ArrayList
)时,我得到的是java.lang.instrument.UnmodifiableClassException
您可以使用Instrumentation.isModifiableClass()
检查类是否可修改
我的问题是:
Gilad您应该在您的仪器上调用
isModifiableClass
boolean isModifiableClass(Class<?> theClass)
boolean可修改类(类)
看
确定类是否可以通过重传或重新定义进行修改。如果类是可修改的,则此方法返回true。如果类不可修改,则此方法返回false。
对于要重新转换的类,isRetransformClassesSupported()也必须为true。但是IsRetransformClasseSupported()的值不影响此函数返回的值。对于要重新定义的类,IsRedeFineClasseSupported()也必须为true。但是isRedefineClassesSupported()的值不影响此函数返回的值
基本类(例如java.lang.Integer.TYPE)和数组类永远不可修改
谢谢你的回答。是的,这就是我正在做的。我的问题是什么决定了一个类是否是不可修改的,是否有办法绕过它……我看不到有办法绕过它。我想这就是JVM保持安全的方式,因此您不能修改所有内容。