java - 在类的一个实例上找不到公共(public)符号变量 (Java)

标签 java variables arraylist scope

我正在编写一个程序来计算两个节点之间的最短路径。在我的程序中,我有一个名为 NodeList 的自定义类,它包含一个字符串(表示节点)和距离的 ArrayList。我正在使用 Dijkstra 算法,该算法涉及打开每个节点的最短边。因此,我使用此循环来列出从给定点出发的可能路线:

for ( NodeList ed : edges )
    {
     if (ed.nodeList.get(0).equals(node1))
     {
      routes.add(ed);
     }
    }

这工作正常,并且似乎将正确的值加载到变量中(根据调试器)。但是,当我尝试将变量设置为其中一个节点的距离时,我收到一条消息“找不到符号变量距离”。这是导致问题的代码:

int minDistance = routes.get(0).distance;

这是不正常的还是我遗漏了一些明显的东西?

最佳答案

get(0)显然返回了一个没有特定字段的类类型的对象。

根据问题的根本原因,有多种解决方案:

  • 如果可能,参数化列表(例如 NodeList<Route> 而不是 NodeList)
  • 将其转换为正确的类型(例如 int distance = ((Route) routes.get(0)).distance)
  • 公开该字段(例如 public int distance; )
  • 添加一个 getter(例如 public int getDistance() { return this.distance; } )并使用它。

关于java - 在类的一个实例上找不到公共(public)符号变量 (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1873866/

相关文章:

c - C 中的变量,可接受值的范围有限

variables - window 上的 Jenkins 。声明式管道 jenkinsfile。如何设置和获取正确的变量值

java - 使用 ArrayList<HashMap> 使用 Jsoup Elements 中的不同值填充 ListView

java - 如何在运行时创建通用 Collection<T>?

java - 使用 Axis 调用 Web 服务中的 SOAPACTION_URI_PROPERTY

java - GWT 中的 XML 解析

java - volatile 变量没有给出预期的输出

javascript - 当另一个变量变为 false 时覆盖一个变量 Angular.js

java - 如何将Array的新对象ArrayList添加到另一个ArrayList中?

java - 将值映射到 ArrayList