2015-04-06 54 views
0

我正在Eclipse中使用JADE。我试图捕捉动作方法为每个执行的行为使用一个方面。它工作得很好,我甚至得到了执行行为的实例。然而这个例子不允许我得到添加了这种行为的代理。因为在http://jade.tilab.com/doc/api/jade/core/behaviours/Behaviour.html行为允许我们知道哪个代理添加了此行为。以下PIC显示我的错误为什么我无法从行为实例获取代理?

enter image description here

感谢。

+2

没有,PIC值不一定显示错误,只是代码中它似乎发生的地方。你介意通过实际引用确切的错误信息来更新问题吗?它可能已经解释了编译器的抱怨。 – kriegaex

回答

0

感谢您的而不是更新的问题,而不是发布实际的错误信息,甚至隐藏您的类从您的读者的意见进口。 :-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(); 
    } 
} 
+0

但仍然,即使你的代码,我得到红色下划线 什么是你的玉版? 我有一个假设,该版本是我的问题的来源 – steevn

+0

*您*要求*我*的细节,你懒得提供任何?!来吧!先生,在你之后。我在等。 – kriegaex

+0

是的,我是对的 我发现这个问题,玉V4.3.3在行为CALSS 感谢这么多先生 提供getAgent(),但现在我面临的另一个问题 我将编辑 – steevn

相关问题