Java: 如何检查另一个 .jar 中的方法是否包含某些内容?
Java: How to check if a Method from another .jar contains something?
我正在开发一个 bukkit 插件,用于检查插件的强制操作方法。我知道如何获取插件的方法,但我不知道如何检查方法是否包含 "player.setOp(true);" 之类的东西。你能帮帮我吗?
我的代码如下所示:
@EventHandler
public void onChat(AsyncPlayerChatEvent e) {
RegisteredListener[] listeners = e.getHandlers().getRegisteredListeners();
for(RegisteredListener lis : listeners) {
for(Method m : lis.getListener().getClass().getMethods()) {
//I don't know how to check if the methods contain something.
}
}
}
您无法使用 Java 反射检查此类细节。
您将不得不查看字节码,或者使用一些生成 AST(抽象语法树)的库并使用 AST 进行调查。
我正在开发一个 bukkit 插件,用于检查插件的强制操作方法。我知道如何获取插件的方法,但我不知道如何检查方法是否包含 "player.setOp(true);" 之类的东西。你能帮帮我吗?
我的代码如下所示:
@EventHandler
public void onChat(AsyncPlayerChatEvent e) {
RegisteredListener[] listeners = e.getHandlers().getRegisteredListeners();
for(RegisteredListener lis : listeners) {
for(Method m : lis.getListener().getClass().getMethods()) {
//I don't know how to check if the methods contain something.
}
}
}
您无法使用 Java 反射检查此类细节。
您将不得不查看字节码,或者使用一些生成 AST(抽象语法树)的库并使用 AST 进行调查。