当前位置: 首页 > 知识库问答 >
问题:

在方面中获取目标对象并调用目标对象上的另一个方法

吕奇
2023-03-14

我想在一个方法pointcut上编写一个方面,在该方面中,我想使用调用pointcut方法的对象调用另一个方法。

类似于这样:


@Pointcut("@annotation(com.mypackage.Notify(getC))")
public void notifyPointCut() {
}

@AfterReturning(value = "notifyPointCut(getC)", argNames = "joinPoint") 
public void notifyChange (JoinPoint joinPoint) {
  Object targetObject  = joinPoint.getTarget();
  C cField = targetObject.invokeMethod("getC");
  notifier.sendUpdate(cField);
}

我不确定我是否使方面的用法太复杂了,因为我在任何地方都找不到这样的用法。

共有1个答案

习华灿
2023-03-14

我想出了如何调用该方法。我需要获取方法并调用它,然后我不需要为类进行强制转换。


Object targetObject  = joinPoint.getTarget();
Method m = targetObject.getMethod("getC");
m.invoke(targetObject);
 类似资料:
  • 谢谢你考虑我的问题,我认为这实际上是在问: 不太确定下面的代码会如何死锁。 其结构大致如下所示,有两个类: < li >具有同步方法的主类工作器 < li >具有类级别同步方法的util类 Worker的< code>run方法会死锁,使< code>doSomething()不同步可以避免死锁。 真实应用程序的线程转储显示: “Worker”线程被阻塞-正在等待监视器锁定-- 此处的“sched

  • CSS选择器 可使用任意CSS选择器作为动画目标 不可使用伪元素 Type Default Example String null targets: '.item' anime({ targets: '.css-selector-demo .el', translateX: 250 }); DOM元素 /元素序列 使用DOM节点或节点的集合作为动画目标 Type Default Examp

  • 我正在寻找解决方案,如何在selenium webdriver的页面对象模型中获取相对于另一个对象的页面对象 我的测试代码: 下一页 配置类 我的测试课 在FirstPage和NextPage这两个类中,我都通过xpath找到元素,xpath具有相同的第一部分//div[@class='widget'],这意味着所有元素(如按钮和链接)都在这个小部件下,我在我的所有页面中都有相同的小部件xpath

  • 我在spring boot API工作。这是我第一次遇到这个问题。 谢谢你的回答:)

  • 本文向大家介绍Python面向对象实现一个对象调用另一个对象操作示例,包括了Python面向对象实现一个对象调用另一个对象操作示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python面向对象实现一个对象调用另一个对象操作。分享给大家供大家参考,具体如下: 我先总结一下python中的类的特点: 1.类中所有的方法的参数中都必须加self,并且是第一个参数 2.__init__方法用

  • 问题内容: 我有一个与此对象类似的对象: 我试图得到它的长度,问题是返回5而不是3(这是它的总项目数)。该数组相对较长(有1000x2000个项目),并且必须每秒执行很多次。我如何才能更有效地获取商品数量? 问题答案: 显然,除了kieran的回答外,现代浏览器还具有功能。在这种情况下,您可以这样做: