我有以下课程:包ajia.messaging;
public class MessageCommunicator {
public void deliver(String message) {
System.out.println(message);
}
public void deliver(String person, String message) {
System.out.println(person + ", " + message);
}
}以下建议如下:
package ajia.security;
import ajia.messaging.MessageCommunicator;
public aspect SecurityAspect {
private Authenticator authenticator = new Authenticator();
pointcut secureAccess()
: execution(* MessageCommunicator.deliver(..));
before() : secureAccess() {
System.out.println("Checking and authenticating user");
authenticator.authenticate();
}
}我编译了像这样的所有东西- ajc -source 5 ajia\messaging\MessageCommunicator.java ajia\security\SecurityAspect.aj
据我所知,最终的MessageCommunicator.class已经包含方面代码。我想知道标准java反编译器是否会正确地反编译类?
发布于 2014-09-22 05:40:13
反编译器通常通过识别编译器生成的模式来工作。AspectJ还试图生成遵循相同模式的代码( catch块的字节代码结构,类似的东西)。因此,通常情况下,代码会反编译,除非一些疯狂的编织已经进行。AspectJ项目将接受不干净的反编译代码的bug报告,并尝试解决它。
发布于 2014-09-21 12:34:21
是的,至少对JAD反编译器是有效的。
https://stackoverflow.com/questions/25959049
复制相似问题