gpt4 book ai didi

java - 就餐 : unknown errors reported

转载 作者:行者123 更新时间:2023-11-29 04:06:09 25 4
gpt4 key购买 nike

问题 1:

下面是我收到的错误,但我不知道哪里出了问题。

Caused by: java.lang.NullPointerException
at repast.simphony.visualizationOGL2D.DisplayOGL2D.getSpatialForObject(DisplayOGL2D.java:535)
at repast.simphony.visualizationOGL2D.NetworkLayerOGL2D.update(NetworkLayerOGL2D.java:103)
at repast.simphony.visualizationOGL2D.DisplayOGL2D.update(DisplayOGL2D.java:410)
at repast.simphony.visualizationOGL2D.DisplayOGL2D.reshape(DisplayOGL2D.java:589)
at saf.v3d.Canvas2D.reshape(Canvas2D.java:400)
at jogamp.opengl.GLDrawableHelper.reshape(GLDrawableHelper.java:742)
at jogamp.opengl.GLDrawableHelper.reshape(GLDrawableHelper.java:748)
at javax.media.opengl.awt.GLJPanel$Updater.display(GLJPanel.java:1404)
at javax.media.opengl.awt.GLJPanel$9.run(GLJPanel.java:1483)
at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1277)
... 69 more

这是用于生成边缘网络的输入文件:

enter image description here

下面是添加报告上述问题的路由网络的代码部分。我正在尝试映射一个无向路由网络以确保只有一个边缘连接两个集线器。为了避免重复,我有一个 if 条件 (if (net.getEdge(source, target) == null)) 来检查两个集线器之间是否已经存在边缘。如果不是,则创建一个新的,如果是,则什么都不做。如果我删除此 if 条件,则没有错误,但存在边缘重复。如果我添加这样的 if 条件,我每次都会遇到以下错误。我不知道为什么?但是,如果我在 GUI 中完全删除显示,则可以很好地忽略所有重复。

//      add route network
Network<Object> net = (Network<Object>)context.getProjection("IntraCity Network");
IndexedIterable<Object> local_hubs = context.getObjects(LocalHub.class);
for (int i = 0; i <= CSV_reader_route.getMaster().size() - 1; i++) {
String source = (String) CSV_reader_route.getMaster().get(i).get(0);
String target = (String) CSV_reader_route.getMaster().get(i).get(3);
double dist = Double.parseDouble((String) CSV_reader_route.getMaster().get(i).get(6));
double time = Double.parseDouble((String) CSV_reader_route.getMaster().get(i).get(7));

Object source_hub = null;
Object target_hub = null;
Query<Object> source_query = new PropertyEquals<Object>(context, "hub_code", source);
for (Object o : source_query.query()) {
if (o instanceof LocalHub) {
source_hub = (LocalHub) o;
}
if (o instanceof GatewayHub) {
source_hub = (GatewayHub) o;
}
}

Query<Object> target_query = new PropertyEquals<Object>(context, "hub_code", target);
for (Object o : target_query.query()) {
if (o instanceof LocalHub) {
target_hub = (LocalHub) o;
}
if (o instanceof GatewayHub) {
target_hub = (GatewayHub) o;
}
}

// System.out.println(target_hub.getClass() + " " + time);
// Route this_route = (Route) net.addEdge(source_hub, target_hub);
// context.add(this_route);
// System.out.println(net.getEdge(source_hub, target_hub));
if (net.getEdge(source_hub, target_hub) == null) {
Route this_route = (Route) net.addEdge(source_hub, target_hub);
context.add(this_route);
// this_route.setDist(dist);
// this_route.setTime(time); }
}



}

发现问题 1 的问题:

找到问题原因了,应该是net.getEdge(source, target)中的source_hub和target_hub。

        if (net.getEdge(source, target) == null) {
Route this_route = (Route) net.addEdge(source, target);

问题 2:

更新:我发现初始化这部分代码非常慢。需要 40 秒才能完成!代码的问题在哪里?我测试了一下,我的CSV读取代码单独运行的话,居然可以在不到1秒的时间内完成读取工作。这个DataReader是上面流程用来初始化相关属性的部分。

以下是上述路由生成过程使用的DataReader代码。但是,我怀疑是上述路由生成代码中的查询循环消耗了大部分时间进行初始化:

public class DataReader {

private String csvFile;
private List<String> sub = new ArrayList<String>();
private List<List> master = new ArrayList<List>();


public void ReadFromCSV(String csvFile) {

String line = "";
String cvsSplitBy = ",";

try (BufferedReader br = new BufferedReader(new FileReader(csvFile))) {
System.out.println("Header " + br.readLine());
while ((line = br.readLine()) != null) {

// use comma as separator
String[] list = line.split(cvsSplitBy);
// System.out.println("the size is " + country[1]);
for (int i = 0; i < list.length; i++) {
sub.add(list[i]);
}
List<String> temp = (List<String>) ((ArrayList<String>) sub).clone();
// master.add(new ArrayList<String>(sub));
master.add(temp);
sub.removeAll(sub);
}

} catch (IOException e) {
e.printStackTrace();
}

System.out.println(master);
}

public List<List> getMaster() {
return master;
}

}

最佳答案

如果您没有为该代理类型指定样式,您可能会遇到此错误。例如,如果您向模型中引入了新的代理类型并实例化了该类型的代理,但没有在显示向导中为该类型指定样式。

关于java - 就餐 : unknown errors reported,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58539330/

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