无法使用Spliterator(Stream Api)的方面

时间:2014-10-29 09:06:48

标签: java-8 aspectj java-stream spliterator

我尝试使用AspectJ方面观察我的分裂器以进行记录。但似乎不可能。方面永远不会被调用,IntelliJ告诉我建议没有方法。我正在使用AspectJ 1.8.1。

你会在github找到一个SSCCE:https://github.com/flaviait/StreamSpliteratorAspectJExample

具有注释方面的Spliterator:

public class RepositorySpliterator<T> implements Spliterator<T> {

    @Override
    @SpliteratorWatch
    public boolean tryAdvance(Consumer<? super T> action) {
        ...
    }
}

我的观点:

@Aspect
@Component
public class SpliteratorWatchAspect {

    private static final Logger logger = LoggerFactory.getLogger(SpliteratorWatchAspect.class);

    @After("@annotation(spliteratorWatch)")
    public void watch(JoinPoint joinPoint, SpliteratorWatch spliteratorWatch) throws Throwable {
        ...
    }

}

最后但并非最不重要的是注释:

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface SpliteratorWatch {
}

我在不同的环境中做了这么多次,它运行正常。 Java 8流API,分裂器和方面是否存在任何已知问题?也许有人可以帮助我。那太好了!

0 个答案:

没有答案