在尝试使用java.util.ArrayList
等课程时,我得到了java.lang.instrument.UnmodifiableClassException
。
您可以使用Instrumentation.isModifiableClass()
检查某个类是否可修改。
我的问题是:
顺便说一句,在使用HotSpot或Jrocking时,我没有得到这个例外,只有IBM JVM。
谢谢, 吉拉德
答案 0 :(得分:4)
您应该在仪器上调用isModifiableClass
boolean isModifiableClass(Class<?> theClass)
确定类是否可通过重新转换或重新定义进行修改。如果类是可修改的,则此方法返回true。如果类不可修改,则此方法返回false。 对于要重新转换的类,isRetransformClassesSupported()也必须为true。但isRetransformClassesSupported()的值不会影响此函数返回的值。对于要重新定义的类,isRedefineClassesSupported()也必须为true。但isRedefineClassesSupported()的值不会影响此函数返回的值。
原始类(例如,java.lang.Integer.TYPE)和数组类永远不可修改。