私はASM ClassVisitorを拡張し、訪問したクラスが匿名クラスであるかどうかを知りたがっています。ASMの匿名クラスにアクセスしているかどうかはどのように確認できますか?
私はクラスファイルを持っているので、クラスファイル名が$ [1-9] [0-9] *。classで終わると、匿名クラスになります。しかし、通貨文字はクラス名で有効です。たとえば、匿名クラスではないにもかかわらず、MyClass $ 1という名前のクラスが一致します(クラスファイルの名前はMyClass $ 1.class)。私はほとんどの人がこのようなことをおそらく名付けないだろうが、それは許されていることを知っている。
visitOuterClassメソッドをオーバーライドして、$#で終わる名前の外部クラスを削除する外部クラスがあるかどうかを確認しましたが、$ 1などで終わる内部の非匿名クラス名を持つこともできます。
匿名のクラスを訪問していることをASMに知らせる方法はありますか?または私よりも良いトリックですか?
#は、任意の数を意味する(正規表現[1-9] [0-9] *)
ありがとうを印刷し
のようにそれを確認することができます!これについて数日のうちに考えている/グーグルグーグルでいる。 – osundblad