gpt4 book ai didi

java - AspectJ - 实现给定接口(interface)的类的静态类型间声明

转载 作者:太空宇宙 更新时间:2023-11-04 07:13:01 26 4
gpt4 key购买 nike

我想知道是否有可能(以及如何...)做出适用于实现给定接口(interface)的所有类的静态类型间声明。

在我的用例中,我有一个空接口(interface):

public interface Delegate {}

和两个实现它的类:

public class DelegateA implements Delegate {...}
public class DelegateB implements Delegate {...}

我想要一个方面来声明 DelegateA 和 DelegateB 上的静态成员...以及所有将实现我的接口(interface)的 future 类!

我该怎么做?如果可能的话...

最佳答案

您确定要这样做吗?无论如何,这是我解决您问题的最佳解决方案:

public aspect MyAspect pertypewithin(Delegate+){
public int oneFieldPerClass;
}

这将为委托(delegate)的每个子类型实例化一个方面。您可以通过以下方式访问该字段:

MyAspect.aspectOf(DelegateA.class).oneFieldPerClass = 1;
MyAspect.aspectOf(DelegateB.class).oneFieldPerClass = 2;

Delegate d = new DelegateA();
MyAspect.aspectOf(d.getClass()).onFieldPerClass = 3;

以下线程也可能有帮助:

AspectJ - Creating a global Logger field using an Inter-Type Declaration

HTH、DSP

关于java - AspectJ - 实现给定接口(interface)的类的静态类型间声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20363873/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com