2012-04-27 40 views
-1

我收到了有关未经检查的不安全操作的警告。我不太清楚为什么我会得到这个警告,但是有谁知道我应该试图捕捉什么异常以及在哪里?我假设我得到这个警告是因为我没有检查可能的异常。未经检查的不安全操作

import java.awt.*; 
import java.util.*; 
import java.awt.event.*; 
import javax.swing.*; 

public class Tokenizer{ 

public static String split(String string) 
{ 
    TreeSet tree = new TreeSet(); 
    StringTokenizer tokenizer = 
    new StringTokenizer(string); 

    while (tokenizer.hasMoreTokens()) 
    tree.add(tokenizer.nextToken()); 

    String result = tree.toString(); 

    return result; 
}//end of split 

public static void main(String args[]) 
{ 
    String str; 
    Scanner input = new Scanner(System.in); 
    System.out.println("Please input a string:"); 
    str = input.nextLine(); 
    split(str); 

}//end of main 
}//end of tokenizer 
+4

*“不太确定为什么我得到这个错误”* ***什么***错误?引用实际的错误信息。 – 2012-04-27 13:41:25

+4

您需要缩进代码。谢谢。 – ThiefMaster 2012-04-27 13:41:26

+0

错误在哪里? – Silviu 2012-04-27 13:41:46

回答

2

你的问题是你没有使用泛型。

你应该是这样的:

Set<String> tree = new TreeSet<String>(); 

或者添加@SuppressWarnings("unchecked")你的方法(不推荐)以上

编辑: 你可以去这里得到使用泛型的一些详细信息: https://en.wikipedia.org/wiki/Generics_in_Java

+1

但是,这是*警告*,但他表示他有*错误* – amit 2012-04-27 13:56:20

+1

如果你拿他的代码并编译它,你会得到:Tokenizer.java:16:warning:[unchecked] unchecked call to添加(E)作为原始类型的成员java.util.TreeSet tree.add(tokenizer.nextToken()); ^ 1警告 – Gren 2012-04-27 13:57:02

+0

这是*警告*,而不是*错误*。也许OP意味着警告。 – amit 2012-04-27 13:58:54

相关问题