首页 > 解决方案 > 使用 isSubTypeOf 时排除特定子类型

问题描述

我正在尝试使用以下表达式排除接口的特定子类型。CompositeAction 扩展了 Action 接口。还有其他接口扩展了 Action 接口。除了实现 CompositeAction 接口的类之外,我想包括所有子类型的 Action 接口。我尝试使用以下表达式,但不排除它。

isSubTypeOf(Action.class)
    .and(not(isSubTypeOf(named(CompositeAction.class.getName()))));

还尝试用 hasSuperType 代替 isSubTypeOf,但效果不佳。可行吗?感谢任何帮助。

标签: byte-buddy

解决方案


它应该很简单:

isSubTypeOf(Action.class).and(not(isSubTypeOf(CompositeAction.class)))

作为回报,你会得到一个ElementMatcher你可以很容易地提供一个类型的东西,这样你就可以正确地对其进行单元测试。


推荐阅读