簡體   English   中英

我是否可以使用可以將HashMap或列表作為參數的方法?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM