我想編寫一個通用的方法(與仿製藥或PARAM)如何用泛型類型寫一個java方法?
,將取代這兩個調用:
private ServerEvent filterEvents() {
return argThat(new ArgumentMatcher<ServerEvent>() {
@Override
public boolean matches(Object argument) {
return argument instanceof Type1;
}
});
private ServerEvent filterEvents() {
return argThat(new ArgumentMatcher<ServerEvent>() {
@Override
public boolean matches(Object argument) {
return argument instanceof Type2;
}
});
我已經試過了,但得到的編譯錯誤:
private <T> ServerEvent filterEvents() {
return argThat(new ArgumentMatcher<ServerEvent>() {
@Override
public boolean matches(Object argument) {
return argument instanceof T;
}
});
更新:
我也試過這個,但還是收到錯誤:
verify(loggerUtilsWrapper).writeEvent(filterEvents(MatchNotFoundEvent.class));
private ServerEvent filterEvents(final Class<MatcherEvent> eventType) {
return argThat(new ArgumentMatcher<ServerEvent>() {
@Override
public boolean matches(Object argument) {
return argument instanceof eventType;
}
});
}
我想你的意思是'clazz.isInstance(argument)'。 「java.lang.Class > .instanceOf」方法似乎不存在。 – ApproachingDarknessFish 2014-10-21 22:03:37
我得到「無法解析法‘clazz.instanceOf’ – 2014-10-21 22:05:12
你是對的,謝謝!固定它。 – 2014-10-21 22:06:15