我在java中调试一个小程序,发生了一个奇怪的错误:
import java.util.*;
public class DebugNine3
{
public static void main(String[] args)
{
ArrayList products = new ArrayList(3);
products.add("shampoo");
products.add("moisturizer");
products.add("conditioner");
Collections.sort(products);
display(products);
final String QUIT = "quit";
String entry;
Scanner input = new Scanner(System.in);
System.out.print("\nEnter a product or " + QUIT + " to quit >> ");
entry = input.nextLine();
while(!entry.equals("quit"))
{
products.add(entry);
Collections.sort(products);
display(products);;
}
}
public static void display(ArrayList products)
{
System.out.println("\nThe size of the list is " + products.size());
for(int x = 0; x <= products.size(); ++x)
System.out.println(products.get(x));
}
}
注意:DebugNine3.java使用未经检查或不安全的操作。 注意:使用-Xlint重新编译:取消选中以获取详细信息。
有人可以解释为什么会出现此消息吗?
答案 0 :(得分:1)
您使用的是没有类型的ArrayList。
ArrayList<String> products = new ArrayList<String>(3);
应该解决你的问题。
答案 1 :(得分:0)
你的ArrayList products = new ArrayList(3);
不使用泛型,所以编译器告诉你它不能保证你不会在运行时输入错误的类型。
您应该将其更改为ArrayList<String> products = new ArrayList<String>(3);
有关详细信息,请参阅Java教程:http://docs.oracle.com/javase/tutorial/java/generics/why.html