我正在Eclipse中使用JADE。我试图捕捉动作方法为每个执行的行为使用一个方面。它工作得很好,我甚至得到了执行行为的实例。然而这个例子不允许我得到添加了这种行为的代理。因为在http://jade.tilab.com/doc/api/jade/core/behaviours/Behaviour.html行为允许我们知道哪个代理添加了此行为。以下PIC显示我的错误为什么我无法从行为实例获取代理?
感谢。
我正在Eclipse中使用JADE。我试图捕捉动作方法为每个执行的行为使用一个方面。它工作得很好,我甚至得到了执行行为的实例。然而这个例子不允许我得到添加了这种行为的代理。因为在http://jade.tilab.com/doc/api/jade/core/behaviours/Behaviour.html行为允许我们知道哪个代理添加了此行为。以下PIC显示我的错误为什么我无法从行为实例获取代理?
感谢。
感谢您的而不是更新的问题,而不是发布实际的错误信息,甚至隐藏您的类从您的读者的意见进口。 :-7
无论如何:你发布的代码应该可以工作,对我来说它在Eclipse中没有任何红色下划线。以下是为您的切入点和建议两个变量,就像你有一个丑陋的铸造和使用getThis()
和一个更优雅的直接和类型安全的参数绑定:
package de.scrum_master.aspect;
import jade.core.behaviours.Behaviour;
public aspect ActionAspect {
before() :
execution(* Behaviour.action(..))
{
System.out.println(thisJoinPoint);
Behaviour behaviour = (Behaviour) thisJoinPoint.getThis();
behaviour.getAgent();
}
before(Behaviour behaviour) :
execution(* Behaviour.action(..)) && this(behaviour)
{
System.out.println(thisJoinPoint);
behaviour.getAgent();
}
}
没有,PIC值不一定显示错误,只是代码中它似乎发生的地方。你介意通过实际引用确切的错误信息来更新问题吗?它可能已经解释了编译器的抱怨。 – kriegaex