【问题标题】:Error: reference to ArrayList is ambiguous错误:对 ArrayList 的引用不明确
【发布时间】:2018-01-16 11:10:23
【问题描述】:

对于我只能假设是一个非常简单的解决方案,我束手无策。 Java 新手,尝试创建一个 ArrayList 来捕获用户输入,然后对 ArrayList 中的元素求和。

问题是,我什至无法进行实际计算,因为我的 IDE 不断给我以下错误:

对 ArrayList 的引用不明确 java.util 中的 java.util.ArrayList 中的两个类和 X 中的类 X.ArrayList 匹配。

我已经搜索了 Google 并阅读了 ArrayLists 的 java api,但我无法弄清楚为什么会出现错误。如果有帮助,我正在使用 NetBeans。

import java.util.ArrayList;
import java.util.Scanner;

public class ArrayList<Integer> {

    public void arrayListSum() {
        ArrayList<Integer> pList = new ArrayList<Integer>();
        Scanner sc = new Scanner(System.in);
            while (true){
                System.out.println("Please enter a number: ");
                pList.add(sc.next());
    }

【问题讨论】:

  • 查看你的类名,错误 "reference to ArrayList is ambiguous java.util 中的 java.util.ArrayList 中的两个类和 X 中的类 X.ArrayList 匹配."
  • ArrayList&lt;Integer&gt; pList = new ArrayList&lt;Integer&gt;(); 中哪个ArrayList 是你的意思?你的班级还是导入的java.util.ArrayList?这就是编译器所抱怨的。
  • 给你的班级换个名字
  • 不要以现有课程命名您的课程。你一定有比这更多的想象力。
  • 如果你真的要这样做,不要导入java.util.ArrayList;相反,每次都使用完全限定名称。

标签: java arrays arraylist input


【解决方案1】:

您创建了一个自定义 ArrayList 类,其中包含您命名为 Integer 的泛型类型参数。这会导致名称与java.util.ArrayList 发生冲突。只需重命名您的班级。

public class SomeOtherName {

    public void arrayListSum() {
        ArrayList<Integer> pList = new ArrayList<Integer>();
        Scanner sc = new Scanner(System.in);
        while (true){
            System.out.println("Please enter a number: ");
            pList.add(sc.next());
        }
    }
}

【讨论】:

    猜你喜欢
    • 2013-09-27
    • 2016-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-07
    • 2018-07-02
    • 2021-01-07
    • 1970-01-01
    相关资源
    最近更新 更多