Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
ASM を使用して Java クラス ファイルのアナライザーを作成しています。私が決定したいことの 1 つは、クラス内のフィールドの修飾子 (public、static、final?) が何であるかです。しかし、これを行う方法がわかりません。
ドキュメントで、修飾子のオペコードを見つけました。これは、FieldNode クラスの acces 値と相関しているようです。しかし、この値からフィールドの修飾子を導出する方法がわかりません。
助言がありますか?
アクセスメンバー変数はビットフィールドで、各ビット位置は特定のアクセス修飾子に対応します。ビットをチェックするには、定数 from でバイナリ AND を使用しOpcodes、結果がゼロでないかどうかをチェックする必要があります。例えば:
Opcodes
boolean isPublic = (node.access & Opcodes.ACC_PUBLIC) != 0; boolean isStatic = (node.access & Opcodes.ACC_STATIC) != 0;