2015-07-09 2 views
0

Я просто пытаюсь выполнить простой код и получить это примечание. Программа скомпилирована и выполнена успешно, но эта заметка меня беспокоит.Программа использует непроверенные или небезопасные операции, перекомпилирует с помощью -Xlint: непроверено для получения более подробной информации.

Program uses unchecked or unsafe operations, recompile using -Xlint:unchecked for details 
  • Какие опасные или непроверенные операции здесь? И что подразумевается под небезопасной или непроверенной операцией?
  • Что делает -Xlint:Unchecked? И как его использовать?

Я использовал его, как это во время компиляции:

javac <filename>.java -Xlint:unchecked 

и результат

[unchecked] unchecked call to add <E> as a member of raw type HashSet h.add("raj"); 

и получил его в других линиях, а что это значит?

import java.util.HashSet; 
import java.util.Iterator; 
public class HashSetDemo 
{ 
    public static void main(String[] args) 
    { 
     HashSet h = new HashSet(); 
     h.add("raj"); 
     h.add(11); 
     h.add(22.2); 
     h.add('c'); 
     h.add(true); 
     h.add(null); 
     h.add(null); 
     System.out.println("Duplicate:"+h.add(11)); 
     System.out.println(h); 
     Iterator itr = h.iterator(); 
     while(itr.hasNext()) 
     { 
      System.out.println(itr.next()); 
     } 
    } 
} 
+0

Возможный дубликат [Повторная компиляция с -Xlint: не проверено для деталей] (http://stackoverflow.com/questions/6422162/recompile-with-xlintunchecked-for-details) –

ответ

1

Вы должны использовать тип для HashSet:

Set<String> strings = new HashSet<>(); 

Но тогда вы только способны поставить String экземпляры внутри него.

В вашем примере вашей попытки добавить String, Integer, Float и Boolean экземпляров в него, который не имеет никакого смысла.

Посмотрите на the Java Tutorial, чтобы узнать о дженериках.

Смежные вопросы

 Смежные вопросы