2017-09-20 11 views
2

MethodEntryRequestを作成していますが、このリクエストを2つのクラスパターンのメソッドにのみ適用したいとします。例:"java.*""sun.*"そのために私は次のコードを書いていました。複数クラスのクラスフィルタを適用する

MethodEntryRequest menr = mgr.createMethodEntryRequest(); 
menr.setSuspendPolicy(EventRequest.SUSPEND_ALL); 
menr.addClassFilter("java.*|sun.*"); 

上記のコードの問題は、すべてのメソッドイベントを無効にすることです。しかし、クラスパターンメソッドを1つしか適用しないと、正常に動作しています。 "|""\\\\|"でエスケープしようとしましたが、動作しませんでした。クラスフィルタを複数のクラスパターンに適用する方法を知りたいですか?

+0

あなたの答えはうまくいかなかった。私はあなたが例と受け入れ可能なものを意味するのか理解できませんでした。 – rainyday

+0

"java。*"の代わりに "(java)。*"を試してみて、両方が同じではないことを知った '()'は何らかの問題を引き起こしています – rainyday

+0

おっと!文書化されているように:_正規表現は完全一致と '' * ''で始まるか' '*''で終わるパターンに限定されます。 '' * .Foo ''や' 'java。*" '._ –

答えて

1

何か間違っており、通常のJava正規表現が動作していないように見えます。だから、私は "sun。"と "java。"の2つのMethodEntryRequestsを作成して問題を解決しました。しかし、これは最良の答えではありません。各クラスパターンについては、MethodEntryRequestが1つあります。

関連する問題