Java中的“模糊类型”错误是什么?

时间:2013-11-27 23:57:55

标签: java list ambiguous

在下面的代码中,我从最后一行的编译器得到一个错误:“类型列表是不明确的”(在尝试定义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”,此标记后预期的维度'。建议请。

2 个答案:

答案 0 :(得分:14)

问题是Listjava.awt包中都有java.util类,当你导入这些包中的所有类时,编译器不知道你的意思。

所以你不应该使用星号同时导入所有类(只需导入你真正需要的类)或代替Listjava.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:含糊不清。