首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AspectJ反编译

AspectJ反编译
EN

Stack Overflow用户
提问于 2014-09-21 12:13:27
回答 2查看 602关注 0票数 0

我有以下课程:包ajia.messaging;

代码语言:javascript
复制
public class MessageCommunicator {
    public void deliver(String message) {
        System.out.println(message);
    }

    public void deliver(String person, String message) {
        System.out.println(person + ", " + message);
    }
}

以下建议如下:

代码语言:javascript
复制
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反编译器是否会正确地反编译类?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-22 05:40:13

反编译器通常通过识别编译器生成的模式来工作。AspectJ还试图生成遵循相同模式的代码( catch块的字节代码结构,类似的东西)。因此,通常情况下,代码会反编译,除非一些疯狂的编织已经进行。AspectJ项目将接受不干净的反编译代码的bug报告,并尝试解决它。

票数 0
EN

Stack Overflow用户

发布于 2014-09-21 12:34:21

是的,至少对JAD反编译器是有效的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25959049

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档