1
嘗試調用使用泛型和變參數的重載方法時出現編譯錯誤The method getRecommendedIds(String, Object&Comparable<?>&Serializable[]) is ambiguous for the type MyService
。Java中使用泛型VarArgs的模糊方法調用
服務:
public interface MyService {
public <K> List<K> getRecommendedIds(String datasource, K... ids);
public <K> List<K> getRecommendedIds(String datasource, int limit, K... ids);
}
召喚:
@Test(expected = NullPointerException.class)
public void testGetWithLimitThrowsNpeForNullDatasource() {
service.getRecommendedIds(null, 3, UUID.randomUUID());
}
有沒有解決這個辦法嗎?
謝謝!我嘗試過切換int和String參數,這很有效,但我真的不明白爲什麼!有任何想法嗎? –
因爲它不再含糊不清 - 兩種方法的區別在於它們的第一個參數不是一個類型變量(它可以是「int」或「String」)。 –
啊,是的,通過這個想法很明顯感覺:) –