[英]Is Java method with a single argument to receive values of both HashMap<String, Integer> and HashMap<Long, Integer> possible?
[英]Is it possible for me to have a method that can take both a HashMap or a list as an argument?
我有一個類似下面列出的功能:
private static void getNumberOfBrowsers(Collection<?> tcName){
}
我是否有可能只采用一個參數的方法,但是它可以是HashMap<String, String>
或List<String>
?
有可能 ,但是幾乎可以肯定這是一個非常糟糕的主意 。 共有的類是Object
:
private static void getNumberOfBrowsers(Object tcName){
// Need instanceof or similar here
}
相反,請考慮重載方法:
private static void getNumberOfBrowsers(Map<String, String> tcName){
}
private static void getNumberOfBrowsers(List<String> tcName){
}
旁注:我在上面使用了Map<String>
,而不是HashMap<String>
。 通常,除非有充分的理由要求某種特定類型的東西,否則最好對接口進行編碼。
您也可以使用模板類 。 但是,這可能是一個過大的殺傷力。 重載將更簡單。
public class Box<T> {
// T stands for "Type"
private T t;
public void set(T t) { this.t = t; }
public T get() { return t; }
}
來自以下示例: https : //docs.oracle.com/javase/tutorial/java/generics/types.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.