【问题标题】:if ( l <= A_heap_size && A.get(l).key < A.get(i).key ) // ERROR: cannot find symbolif ( l <= A_heap_size && A.get(l).key < A.get(i).key ) // 错误:找不到符号
【发布时间】:2017-03-12 09:33:37
【问题描述】:

我有一条与这部分条件相关的错误消息“找不到符号”:

    PQHeap.java:26: error: cannot find symbol
        if ( l <= A_heap_size && A.get(l).key < A.get(i).key ) 
                                         ^
  symbol:   variable key
  location: class Object
PQHeap.java:26: error: cannot find symbol
        if ( l <= A_heap_size && A.get(l).key < A.get(i).key ) 
                                                        ^
  symbol:   variable key
  location: class Object
PQHeap.java:31: error: cannot find symbol
        if ( r <= A_heap_size && A.get(r).key < A.get(smallest).key )
                                         ^
  symbol:   variable key
  location: class Object
PQHeap.java:31: error: cannot find symbol
        if ( r <= A_heap_size && A.get(r).key < A.get(smallest).key )
                                                               ^
  symbol:   variable key
  location: class Object
PQHeap.java:35: error: cannot find symbol
                Collections.swap( A, i, smallest );
                ^
  symbol:   variable Collections
  location: class PQHeap
PQHeap.java:42: error: constructor Element in class Element cannot be applied to given types;
        Element max = new Element();
                      ^
  required: int,Object
  found: no arguments
  reason: actual and formal argument lists differ in length
PQHeap.java:44: error: no suitable method found for set(int)
        A.set(1).key = A.get(A_heap_size).key;
         ^
    method List.set(int,Element) is not applicable
      (actual and formal argument lists differ in length)
    method AbstractList.set(int,Element) is not applicable
      (actual and formal argument lists differ in length)
    method ArrayList.set(int,Element) is not applicable
      (actual and formal argument lists differ in length)
PQHeap.java:58: error: cannot find symbol
                Collections.swap(A, i, i/2);
                ^
  symbol:   variable Collections
  location: class PQHeap
8 errors

以下是额外信息。 编码:UTF-8。 ArrayLIst 在类定义之前被导入(import java.util.ArrayList;)。 A_heap_size 将外部方法定义为私有 int。 定义为 public ArrayList 的外部方法。 元素构造函数有一个实例变量 int 键。 (元素类是我得到的,所以错误不是来自那里。Element.java 编译完美)。

提前致谢

P.S.:当我删除 .key 时出现另一个错误,但我不确定上述问题是否源于此

【问题讨论】:

  • li 是什么?发布所有相关代码。
  • 欢迎来到 Stack Overflow!寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定问题或错误重现它所需的最短代码在问题本身。没有明确问题陈述的问题对其他读者没有用处。请参阅:How to create a Minimal, Complete, and Verifiable example
  • 当我们看到您的输入不足时,我们不知道您的问题出在哪里。抱歉,我们在这里不是巫师。
  • 好的,感谢您的澄清。不过,我不确定我是否能够提供更多代码:我是一名学生,因此尽管我编写了代码,但更多代码可能意味着在提交作业时被指控抄袭的风险。但我很乐意提供更多信息。否则我可以删除这个问题。我愿意接受建议。提前致谢。
  • 虽然我们对您寻求家庭作业帮助本身没有问题,但请注意这些dos and don'ts,并相应地编辑您的问题。

标签: java arraylist


【解决方案1】:

你打电话给A.get()。这将返回一个java.lang.Object。您正在尝试访问此对象的 key 属性。但是Object 类中没有属性key。因此出现错误。

您可能正在使用原始类型,即使用List 而不是List&lt;MyClassWhichHasAKeyAttribute&gt;。不要使用原始类型。

还有其他几种可能的解释,但由于您不会发布代码,因此这是我们能做出的最佳猜测。

其他错误来自未导入类或调用不存在的方法。阅读 javadoc。

【讨论】:

    猜你喜欢
    • 2020-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-25
    • 1970-01-01
    • 1970-01-01
    • 2013-12-27
    • 1970-01-01
    相关资源
    最近更新 更多