2013-04-13 47 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){} 
} 

我同意@卢西亚诺也。尽可能消除歧义。它会改善代码的可读性。