0

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

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

4

2 回答 2

1

您正在使用没有类型的 ArrayList。

ArrayList<String> products = new ArrayList<String>(3);

应该解决你的问题。

于 2013-10-30T19:27:34.760 回答
0

ArrayList products = new ArrayList(3);不使用泛型,所以编译器告诉你它不能保证你不会在运行时输入错误的类型。

你应该把它改成ArrayList<String> products = new ArrayList<String>(3);

有关更多信息,请参阅 Java 教程:http: //docs.oracle.com/javase/tutorial/java/generics/why.html

于 2013-10-30T19:27:30.820 回答