0
我是一個java新手,我有一些像下面的代碼。java通用類型推斷
public interface TestJava<T extends MyClass, U> {
public U func(T t);
}
的問題是,Ü完全依賴於Ť使得如果Ť被確定,ü還確定(聲明Ú是不必要!)。作爲一個例子,如果Ť是字符串,然後ü必須整數,並且不能是其它的。在C++,ü可以容易地使用關鍵字的typedef像下面如果Ť是一個用戶定義的類除去。
class UserDefinedClass {
public:
typedef int ReturnType;
};
template<class T> class TestCpp {
T::ReturnType func(T t);
};
但是,java沒有這樣的關鍵字(據我所知),所以我不知道如何實現這一點。 注意T中的java代碼是用戶自定義的對象,不是字符串,整數或其他。 不要混淆這個例子:)
沒有通用的方法來實現這樣的約束。我可能會建議定義'接口TestJavaStringToInteger擴展TestJava(obv,名稱更好......),它有一個方法'Integer func(String t)';然而,沒有任何東西可以阻止你擁有另外一個'擴展TestJava '的接口。 –