方法的 Java Platform SE 5 API 规范Instrumentation.redefineClasses(ClassDefinition[])
告诉:
重新定义可能会改变方法体、常量池和属性。重新定义不得添加、删除或重命名字段或方法,更改方法的签名或更改继承。
是什么意思attributes
?我想它可以是访问修饰符(私有、公共、...)、同步、最终和其他修饰符。但是如果我尝试不仅重新定义方法体,还重新定义它的访问修饰符,或类的访问修饰符,或者尝试使方法同步,我得到了
java.lang.UnsupportedOperationException: class redefinition failed: attempted to change method modifiers
at sun.instrument.InstrumentationImpl.redefineClasses0(Native Method)
at sun.instrument.InstrumentationImpl.redefineClasses(Unknown Source)
那么attributes
在这种情况下是什么?