2
在撥打電話之前,下面的代碼一切正常。我怎麼能沒有明確鑄造的問題?提前致謝。Java通用方法調用導致編譯錯誤
Validator接口
public interface Validator <T extends GenericRequest>{
String validate(T request);
}
驗證器實現類
public class AccountOpeningRequestValidator implements Validator<AccountOpeningRequest> {
public class AccountTerminationRequestValidator implements Validator<AccountTerminationRequest> {
驗證服務
public class ValidationService {
private static final Map<Class<?>, Validator<? extends GenericRequest>> map = new HashMap<>();
static {
map.put(AccountOpeningRequest.class, new AccountOpeningRequestValidator());
map.put(AccountTerminationRequest.class, new AccountTerminationRequestValidator());
}
public static <T extends GenericRequest> String validate(T request) {
// !!! This does not work !!!!
return map.get(request.getClass()).validate(request));
}
}
什麼是錯誤? – sje397
你需要使用那種泛型嗎?你不能在GenericRequest類上有一個抽象的「驗證」方法嗎? – sje397
如果在您撥打電話之前沒有問題,那不是編譯錯誤。這是一個運行時錯誤。 – sje397