簡體   English   中英

如何在這樣的Java靜態方法中實例化BigInteger?

[英]How do I instantiate a BigInteger in a java static method like this?

我不明白自己在做什么錯,因為出現錯誤:“無法實例化BigInteger類型”

public static <BigInteger> List<BigInteger> convertIntegerListToStringList(List<String> existingList) {
      ArrayList<BigInteger> newList = new ArrayList<BigInteger>();
      for(String item : existingList) {
        newList.add(new BigInteger(item));
      }
      return newList    
}

破壞代碼的部分是公共靜態<BigInteger>類型參數...但是我不知道為什么。 當我刪除此類型的參數時,編譯錯誤就消失了。

從方法簽名中刪除孤獨的<BigInteger> 該語法用於聲明類型變量,在您的情況下這不是必需的。 如所寫,您正在聲明一個名為BigInteger的“占位符”,它代表某種未知類型。 在該方法中, BigInteger引用該未知類型(未知,無法實例化),而不是按您的意圖引用java.math.BigInteger

同樣,您應該重新訪問方法名稱:您的方法執行名稱所建議的相反操作,即,它將字符串列表轉換為BigInteger列表,而不是相反。

您的方法簽名語法錯誤。 您應該刪除<BigInteger>以使函數返回類型為List<BigInteger>對象

  public static List<BigInteger> convertIntegerListToStringList(List<String> existingList)
  {
      ArrayList<BigInteger> newList = new ArrayList<BigInteger>();
      for(String item : existingList) {
        newList.add(new BigInteger(item));
      }
    return newList;
  }

您還忘記了返回變量名稱后的分號。

public static {ReturnType} {MethodName} ({Arguments})

這就是方法簽名應該是的方式。 無法理解為什么靜態方法簽名后出現<BigInteger>。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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