[英]What is unchecked and unsafe operation here?
我有以下代碼:
private static final Set<String> allowedParameters;
static {
Set<String> tmpSet = new HashSet();
tmpSet.add("aaa");
allowedParameters = Collections.unmodifiableSet(tmpSet);
}
它導致:
Note: mygame/Game.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
當我使用建議的選項重新編譯時,我看到一個指針(^)指向HashSet();
前面的“new” HashSet();
。
有誰知道這里發生了什么?
是的,你正在創建一個新的HashSet而不說明它應該包含哪個類,然后斷言它包含字符串。 將其更改為
Set<String> tmpSet = new HashSet<String>();
當您使用支持新J2SE 1.5功能的類 - 泛型時,會出現這些消息。 如果沒有明確指定集合內容的類型,則可以獲取它們。
例如:
List l = new ArrayList();
list.add("String");
list.add(55);
如果您想擁有單一數據類型的集合,可以通過以下方式刪除消息:
List<String> l = new ArrayList<String>();
list.add("String");
如果您需要將多種數據類型放入一次集合中,您可以:
List<Object> l = new ArrayList<Object>();
list.add("String");
list.add(55);
如果將-Xlint:unchecked參數添加到編譯器,則會獲得有關該問題的特定詳細信息。
有關詳細信息,請參閱此處: http : //forums.sun.com/thread.jspa?threadID = 584311
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.