Java 中的“类型不明确”错误是什么?

问题描述 投票:0回答:3

在下面的代码中,我在最后一行收到编译器的错误:“列表类型不明确”(在尝试定义 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”上的语法错误,预期尺寸”在这个标记之后'。请多多指教。

java list ambiguous
3个回答
15
投票

问题是

List
java.awt
包中都有一个
java.util
类,当您导入这些包中的所有类时,编译器不知道您指的是哪一个。

因此,您不应该使用星号同时导入所有类(仅导入您实际需要的类),或者不应该使用

List
编写
java.util.List<String> cgxHist = new ArrayList<String>();


7
投票
java.awt.List

java.util.List

这两者都存在。您必须在前面添加命名空间才能使用它:

java.util.List<String> cgxHist = new ArrayList<String>();

如果不知道,它就不知道如何解释

List<T>
:是
awt
还是
util
?因此:模棱两可。


0
投票

应该至少有 1 个方法(参数)将所有参数传递给其他参数。

public class MyClass {
public static void main(String[] args) {
    byte x = 10;
    short y = 15;
    float z = 20;

    // Call myMethod with the chosen signature
    myMethod(x, y, z);
}

// Method to accept all arguments
public static void myMethod(int x, short y, double z) {
    System.out.println("Values: x=" + x + ", y=" + y + ", z=" + z);
    // Add your logic here
}

}

对于上述内容,我可以传递值 1. myMethod(int x.short y, double z);这个还可以 2. myMethod(短x, int y, 双z);这个也可以 3. myMethod(字节x, int y, int z);不好

在包装器中,首先选择子类进行选择。

© www.soinside.com 2019 - 2024. All rights reserved.