问题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
这是用于生成边缘网络的输入文件:
下面是添加报告上述问题的路由网络的代码部分。我试图绘制一个无方向的路线网络,以确保只有一条边连接两个枢纽。为了避免重复,我使用了一个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_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;
}
}
如果您没有为该代理类型指定样式,您可能会收到此错误。例如,如果您向模型引入了新的代理类型并实例化了该类型的代理,但没有在显示向导中为该类型指定样式。
我有一个相当简单的映射器 我的域类: 我的DTO类: 我在mvn干净安装上收到的错误: [错误]/C:/code报告/work/github/symphony票证/src/main/java/com/ticket/mappers/TicketLocationDetailsMapper。java:[33,48]结果类型TicketLocationDetails中的未知属性“locationId”。你
错误日志对于发现程序中的错误是非常有帮助的,但是有些时候它也会将应用程序的结构暴露给外部。为了有效的保护你的应用程序不受到由此而引发的问题。你需要将在你的服务器上使用开发和生产(线上)两套不同的配置。 开发环境 为了在开发环境中显示所有可能的错误,将你的 php.ini 进行如下配置: display_errors = On display_startup_errors = On error_re
1.1.2. 错误报告 没有不会犯错的开发者,PHP的错误报告功能将协助您确认和定位这些错误。可以PHP提供的这些详细描述也可能被恶意攻击者看到,这就不妙了。使大众看不到报错信息,这一点很重要。做到这一点很容易,只要关闭display_errors,当然如果您希望得到出错信息,可以打开log_errors选项,并在error_log选项中设置出错日志文件的保存路径。 由于出错报告的级别设定可以导致
我试图找出为什么在<代码>中会发生特定行为。orElseThrow在Java流中。此代码块 导致此错误:
问题内容: 当我运行基本的Docker容器(从Google Cloud Shell中)时,就像这样 然后在运行容器的shell提示符下键入,运行级别为。我是否应该安装()特定软件包以添加对运行级别的支持。如果是这样,哪些是错误的? 问题答案: Docker是一个应用程序隔离工具,而不是OS虚拟化工具。运行级别在操作系统级别,操作系统启动,挂载目录,并启动服务以达到运行级别。在容器中,您的应用程序将
我在一本书中读到,Repast Simphony中的投影可以是投影界面的任何用户实现。我想创建一个自定义投影,但它看起来比我预期的更复杂。你们有没有人尝试过创建自己的投影?如果是的话,你能解释一下如何进行吗?非常感谢。