2013-04-13 74 views
1

我有這樣的接口:通用庫接口

boolean remove(final T object); 

boolean remove(final I id); 

是否有可能解決這個問題:

public interface CrudRepository<T, I> { 

} 

但是我不能,因爲他們交鋒添加這些方法呢? T是類型,我是id類型。

+4

對我來說,解決這個問題的最好方法是使用更多的描述性方法名稱,比如removeById – Luciano

+0

不會id始終是Long或Integer嗎? – NimChimpsky

回答

3

您是否知道T和I將受到某些類型層次結構的約束?在這種情況下,你可以使用這個。

class Myclass<K extends ClassA ,V extends ClassB> 
{ 
    private void remove(K k){} 
    private void remove(V V){} 
} 

我同意@盧西亞諾也。儘可能消除歧義。它會改善代碼的可讀性。