回答
在java中似乎不可能定義類型簽名的重載,但在C#中有可能可能是因爲類型的擴展的。也許這是一個選項...
class Test<A,B> { }
class Test<A> { }
public class Program
{
public static void Main()
{
var one = new Test<string>();
var two = new Test<string, int>();
}
}
在這裏,你重載型Test
的簽名採取任何你會用方法重載做同樣的方式一個或兩個類型參數。 Here is a fiddle for that
不幸的是,你將不得不爲所有的變體創建幾個類型,而不是通過變量參數列表來定義它。
Oooh ..yeah ..overload似乎是一個很好的解.. – gkanellis
沒有,是不可能的,你可以做的是以下幾點:
定義本身並沒有帶來前進的類時定義vararg
構造
public class Deyen<T, G, M> {
private final T typo;
private final G typo22;
private final M[] typo3;
public Deyen(T typo, G typo22, M... typo3) {
this.typo = typo;
this.typo22 = typo22;
this.typo3 = typo3;
}
}
明確定義的一般,但允許varargs
編譯器...
哦,我明白了。不幸的是:(非常感謝! – gkanellis
顯然你希望能夠使可變參數的可變參數形式的不同類型的多個參數。
VarArgs實際上是作爲一個數組傳遞的,但是你不能擁有一個包含不同類型對象的數組。
但是,我們不能取而代之採用單個參數,並且該參數類型保存每個需要使用的單個「參數」。
class TypedInstance<T>{
Class<T> type;
T instance;
}
或者
不同類別的每一組要使用的參數。然後,只需將該類作爲參數傳遞即可。
class MultiTypedInstanceType1<T, R>{
public R doSomething(T t){ .... }
}
class MultiTypedInstanceType2<T, R, P>{
public R doSomething(T t, P p){ .... }
}
是的,這就是我剛剛發現的。 – gkanellis
後者是用於java8'Function'接口的相同方法,不是嗎? –
- 1. 類型變量的定義和參數
- 2. 參考類型參數中定義的類型
- 3. 將類型參數傳遞給通用自定義類
- 4. 通過包含類類型變量綁定的內部類類型參數
- 5. 用戶定義的表類型參數
- 6. 使用定製的PowerShell定義的類型來定義參數類型
- 7. 如何在參數類型上定義參數類型?
- 8. 如何用泛型類型參數定義變量?
- 9. 引用到函數類型函數類型:未定義參考
- 10. 類型定義中的嵌套類型參數
- 11. 參數類類型變量
- 12. 可變長度通用類型
- 13. 使用通用類中定義的泛型參數調用非泛型方法
- 14. 類型球拍:使用定義類型創建通用類型
- 15. 通用類型的泛型類訪問類型參數
- 16. 通用類型參數
- 17. 通用參數類型
- 18. 變通方法爲特定的泛型類型參數
- 19. JSF 2.0;自定義數據類型類中的「參數類型不匹配」?
- 20. PySpark - 改變長期類型數組類型(長型)
- 21. 如何在類型描述中指定類定義作爲參數類型
- 22. 如何在Java內部類中定義綁定類型參數
- 23. 如何爲具有協變/逆變類型參數的類定義flatMap?
- 24. 嘗試使用可變參數模板定義類型
- 25. C#類變量的定義類型
- 26. Haskell類定義中的隱式類型參數?
- 27. 具有泛型類型的可變長度參數scala
- 28. 通用類型參數,通用枚舉返回類型
- 29. 用戶定義的數據類型,使用另一個用戶定義的數據類型作爲參數
- 30. Scala中可變長度參數列表的類型是什麼?
你試過了嗎? –
你是什麼意思我的不準確? – munk
我的意思是我不知道通用參數的確切數量。這取決於實際情況。 – gkanellis