同じインターフェイスでジェネリック メソッドと非ジェネリック メソッドを使用する必要があります。
public interface IBRClientActions<T>
where T : class
{
T add(T element);
Hashtable add(Hashtable hashtable);
void update(T element);
void update(Hashtable hashtable);
}
このインターフェイスを多くの型を持つ他のインターフェイスに実装した後
public interface IBRClientActions : IBRClientActions<AdresseClient>,
IBRClientActions<Role>,
IBRClientActions<LienClient>
{
...
}
私の最終クラスでは、そのようなものが必要です
public class FinalClass : IBRClientActions
{
AdresseClient add(AdresseClient element) { ... }
Hashtable add**<AdresseClient>**(Hashtable hashtable) { ... }
....
}
しかし、Hashtable add<AdresseClient>(Hashtable hashtable) { ... }
それは不可能です。実際には、Hashtable を使用したメソッドであいまいな参照があります。
タイプごとに Hashtable を使用して add メソッドを作成するにはどうすればよいですか?
編集 1
明示的なインターフェースの実装
はい、可能ですが、このソリューションでは毎回クラスをキャストする必要があります
Hashtable htRole = new Hashtable();
FinalClass myClass = new FinalClass();
/* not correct, ambiguity */
myClass.add(htRole);
/* correct, no ambiguity but heavy writing (sorry for my bad english) */
((IBRClientActions<Role>)myClass).add(htRole);