メソッドの 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
では、この文脈には何がありますか?