2015-04-06 1 views
0

Я работаю с JADE в Eclipse. Я попытался захватить метод для каждого выполненного поведения с использованием аспекта. он работает так хорошо, я даже получил экземпляр выполненного поведения. однако этот экземпляр не позволяет мне получить агента, который добавил это поведение. потому что в http://jade.tilab.com/doc/api/jade/core/behaviours/Behaviour.html Поведение позволяет нам узнать, какой агент добавил это поведение. следующий рис показывает моя ошибкаПочему я не могу получить агента из экземпляра поведения?

enter image description here

спасибо.

+2

Нет, ПОС * не * показать ошибка, просто место в коде, где оно, кажется, происходит. Не могли бы вы обновить вопрос, фактически указав точное сообщение об ошибке? Вероятно, это уже объясняет, о чем компилятор жалуется. – 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

* Вы * просите * me * для получения дополнительной информации, и вы слишком ленивы, чтобы предоставить какие-либо ?! Давай! После тебя, сэр. Я жду. – kriegaex

+0

да я был прав я нашел проблему, нефрит v4.3.3 предлагает getAgent() в поведении Calss спасибо так много сэра , но теперь я обращенный другую проблему я буду редактировать вопрос – steevn