调试java中的混乱

时间:2013-10-30 19:24:58

标签: java debugging

我在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重新编译:取消选中以获取详细信息。

有人可以解释为什么会出现此消息吗?

2 个答案:

答案 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