在下面的代码中,我从最后一行的编译器得到一个错误:“类型列表是不明确的”(在尝试定义cgxHist列表的行上)。我做错了什么?
import java.awt.*;
import javax.swing.*;
import java.util.*;
public class drawr extends JPanel{
public static int animationSpeed=470;
public static int diameter = 50;
hBod allHBods[];
List<String> cgxHist = new ArrayList<String>();
我实际上希望列表包含整数,但是当我尝试“强制转换”列表时,通过将<String>
替换为<int>
,该行上的错误变为'令牌上的语法错误“int”,此标记后预期的维度'。建议请。
答案 0 :(得分:14)
问题是List
和java.awt
包中都有java.util
类,当你导入这些包中的所有类时,编译器不知道你的意思。
所以你不应该使用星号同时导入所有类(只需导入你真正需要的类)或代替List
写java.util.List<String> cgxHist = new ArrayList<String>();
答案 1 :(得分:6)
java.awt.List
java.util.List
这两者都存在。您必须在前面添加名称空间才能使用名称空间:
java.util.List<String> cgxHist = new ArrayList<String>();
如果不这样做,它就不知道如何解释List<T>
:它是awt
还是util
? Ergo:含糊不清。