- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试从 Lars Vogel 的网站上用 java 实现 Dijkstra 算法:
http://www.vogella.com/articles/JavaAlgorithmsDijkstra/article.html .
但是没有 main 函数,当我创建一个 public static void 时,它会给我错误,无法从静态上下文引用非静态变量或类。
我是否必须将所有类设为静态还是有其他解决方案?
package de.vogella.algorithms.dijkstra.test;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import org.junit.Test;
import de.vogella.algorithms.dijkstra.engine.DijkstraAlgorithm;
import de.vogella.algorithms.dijkstra.model.Edge;
import de.vogella.algorithms.dijkstra.model.Graph;
import de.vogella.algorithms.dijkstra.model.Vertex;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
public class TestDijkstraAlgorithm {
private List<Vertex> nodes;
private List<Edge> edges;
@Test
public void testExcute() {
nodes = new ArrayList<>();
edges = new ArrayList<>();
for (int i = 0; i < 11; i++) {
Vertex location = new Vertex("Node_" + i, "Node_" + i);
nodes.add(location);
}
addLane("Edge_0", 0, 1, 85);
addLane("Edge_1", 0, 2, 217);
addLane("Edge_2", 0, 4, 173);
addLane("Edge_3", 2, 6, 186);
addLane("Edge_4", 2, 7, 103);
addLane("Edge_5", 3, 7, 183);
addLane("Edge_6", 5, 8, 250);
addLane("Edge_7", 8, 9, 84);
addLane("Edge_8", 7, 9, 167);
addLane("Edge_9", 4, 9, 502);
addLane("Edge_10", 9, 10, 40);
addLane("Edge_11", 1, 10, 600);
// Lets check from location Loc_1 to Loc_10
Graph graph = new Graph(nodes, edges);
DijkstraAlgorithm dijkstra = new DijkstraAlgorithm(graph);
dijkstra.execute(nodes.get(0));
LinkedList<Vertex> path = dijkstra.getPath(nodes.get(10));
assertNotNull(path);
assertTrue(path.size() > 0);
for (Vertex vertex : path) {
System.out.println(vertex);
}
}
private void addLane(String laneId, int sourceLocNo, int destLocNo,
int duration) {
Edge lane = new Edge(laneId,nodes.get(sourceLocNo), nodes.get(destLocNo), duration);
edges.add(lane);
}
public static void main() {
testExcute();
}
}
最佳答案
直接使用以下代码运行它:
public static void main() {
new TestDijkstraAlgorithm().testExcute();
}
您必须首先创建类的实例。 main
方法始终是静态的,因此您不能直接调用实例方法(非静态)。要创建实例,只需使用 new TestDijkstraAlgorithm()
调用构造函数即可。没有显式定义的构造函数,因此默认的、不带参数的构造函数会自动可用。
这些是OOP基础知识,你应该认真阅读它。
话虽这么说,调用 testExecute
方法的假定方法是使用 JUnit 。这就是为什么有 @Test
注释。
关于java - Dijkstra 的最短路径算法 Lars Vogel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16665250/
我正在尝试从 Lars Vogel 的网站上用 java 实现 Dijkstra 算法: http://www.vogella.com/articles/JavaAlgorithmsDijkstra/
我正在开始一个项目,它将使用 DynamoDB 作为数据存储,并且设计非常好 Vogels库来抽象出 Amazon SDK 的一些粗糙边缘。 随着应用的发展,构成数据模型的属性可能会发生预期的变化。通
有人可以分享有关如何拥有 vogels 的信息工作dynalite ? 以下是我在计算机上本地实例化数据库服务器的操作: import dynalite from 'dynalite'; import
这是我的模型定义: var Notification = vogels.define('Notification', { tableName: 'notification', hash
我正在使用 Vogel.js 连接到 Amazon DynamoDB。这很棒,但是我遇到的一件事是诸如 MyEntity.get({ my_key: keyValue }, callback); 如果
我发现 vogels 页面很长一段时间(即大约 5 个月)没有进行积极的开发 https://github.com/ryanfitz/vogels 还有更好的选择吗? 有人遇到过可扩展性或 I/O 时
OS X 10.7.5、Eclipse 4.3 Kepler 构建 ID 20130919-0819、Java 1.7.0_51 我正在跟踪 Vogel tutorial ,我遇到了一个我无法弄清楚的
我正在尝试在 Windows 上使用 Eclipse 4.3.0 创建 Eclipse RCP 应用程序。 作为引用,我阅读了 Lars Vogel 的文章“Eclipse 产品和部署 - 教程”ht
我是一名优秀的程序员,十分优秀!