gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 00:53:40 32 4
gpt4 key购买 nike

我正在编写一个程序来计算两个节点之间的最短路径。在我的程序中,我有一个名为 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/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com