我有这段代码:
//FrameFixture frame = (...got it from window, main frame...)
JTableFixture table = frame.table(new GenericTypeMatcher<JTable>(JTable.class) {
@Override protected boolean isMatching(JTable table) {
return (table instanceof myTreeTable);
}
});
是不是有更好的语法糖用于通过他的.class(继承自基本组件)获取组件?
答案 0 :(得分:1)
如果您需要ComponentMatcher
的实施,那么TypeMatcher可以根据类型进行匹配。
但TypeMatcher
方法无法使用GenericTypeMatcher
,因为它们需要TypeMatcher
。
GenericTypeMatcher
和ComponentMatcher
都实现GenericTypeMatcher
但不在同一层次结构中。
class ConcreteTypeMatcher<T extends Component> extends GenericTypeMatcher<T> {
Class<T> type;
public ConcreteTypeMatcher(Class<T> supportedType) {
super(supportedType);
this.type = supportedType;
}
@Override
protected boolean isMatching(T arg) {
return type.isInstance(arg);
}
}
是抽象的,因此您必须提供实现。如果需要,您可以使用自己的扩展,即:
JTableFixture table = frame.table(
new ConcreteTypeMatcher<myTreeTable>(myTreeTable.class));
并像这样使用它:
{{1}}