Java AspectJ:访问aspect中定义的字段(如何访问类型间成员?)
我目前正在使用AspectJ,这是我第一次尝试湿脚。我想在我的主框架类Main extends JFrame上添加一个新按钮。这就是我到目前为止所做的:Java AspectJ:访问aspect中定义的字段(如何访问类型间成员?),java,aspectj,aspect,pointcut,ajdt,Java,Aspectj,Aspect,Pointcut,Ajdt,我目前正在使用AspectJ,这是我第一次尝试湿脚。我想在我的主框架类Main extends JFrame上添加一个新按钮。这就是我到目前为止所做的: public aspect MainWipe { public static final String Main.wipeText = "Wipe"; public Button Main.wipeButton; pointcut initAtoms() : execution(void Main.initAtoms());
public aspect MainWipe {
public static final String Main.wipeText = "Wipe";
public Button Main.wipeButton;
pointcut initAtoms() : execution(void Main.initAtoms());
after() returning() : initAtoms()
{
// Does not work, eclipse error message "wipeButton / wipeText can not be resolved to a variable"
wipeButton = new Button(wipeText);
}
}
字符串的静态横切以及按钮字段的静态横切工作得很好,但是我想扩展我的initAtoms方法,它主要是通过按钮的初始化来定义的。为此,我必须访问在同一方面定义的字段,这对我不起作用
我怎样才能做到这一点?不知何故,我无法访问字符串和按钮
谢谢
编辑:
这是我的主要课程的一部分:
public class Main extends JFrame{
private static final String lineText = "Line";
Button lineButton;
// Removed other methods / fields / controls
public void initAtoms() {
lineButton = new Button(lineText);
}
public void initContentPane() {
toolPanel.add(lineButton);
}
}
你能说得更具体一些吗?你希望按钮在那之后出现在UI中吗?或者什么不起作用?请注意,您实际上并没有将其添加到框架中,只是将其指定给了一个字段……很抱歉,您的描述不够具体。这两个变量都用表示,但不能通过eclipse解析为变量。我知道这不会将它添加到框架上,但我不能扩展我的特性,将按钮添加到框架上,只要它没有初始化。这都是关于如何访问在我的方面中指定的字段的问题。那么,这些类型间的DECL是否真的对应于类中的变量?也许在你的主类中也会发布这个。不,它们还不存在于主类中,它们应该只在添加方面时才被添加。我将尝试发布我的主要部分,我认为这将是大。。。