Error: The type T cannot be used in GenericTypeMatcher - Expression expected

Error: The type T cannot be used in GenericTypeMatcher - Expression expected

我尝试实现一个泛型方法,该方法将 return 类型参数 T 的 GenericTypeMatcher(由 AssertJ Swing 提供)。您可以看到该方法 here。

问题是,对于具有 Class<T>.

的 GenericTypeMatcher 支持的类型,我得到了一个 Expression expected 错误

你知道怎么解决吗?

这里的问题是 GenericTypeMatcher 接受一个 Class<T> 参数。
你传递的是无效的类型定义。

private static <T extends Component> GenericTypeMatcher<T> getMatcher(final Class<T> clazz) {
   return new GenericTypeMatcher<T>(clazz) {
      @Override
      protected boolean isMatching(final T object) {
         return ...
      }
   }
}

用法

YourClass.getMatcher(YourComponent.class);