Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 爪哇语:;“未知来源”;展开贴图包时出错_Java_Eclipse_Nullpointerexception - Fatal编程技术网

Java 爪哇语:;“未知来源”;展开贴图包时出错

Java 爪哇语:;“未知来源”;展开贴图包时出错,java,eclipse,nullpointerexception,Java,Eclipse,Nullpointerexception,背景 我正在尝试使用Java中的“展开地图”库(这是关于Java面向对象编程的Coursera课程的一部分),使用从RSS提要解析的数据构建地震事件地图。理论上,来自feed的数据被解析为地震的属性(位置、震级等),这些属性构成了地图上显示的这些标记对象的基础。使用的库是“处理”和“展开地图”库 问题 这部分有一个“未知源”错误,我想根据事件的震级设置地震标记的颜色属性(即震级>3为“黄色”) 下面是错误消息: Exception in thread "Animation Thread" jav

背景

我正在尝试使用Java中的“展开地图”库(这是关于Java面向对象编程的Coursera课程的一部分),使用从RSS提要解析的数据构建地震事件地图。理论上,来自feed的数据被解析为地震的属性(位置、震级等),这些属性构成了地图上显示的这些标记对象的基础。使用的库是“处理”和“展开地图”库

问题

这部分有一个“未知源”错误,我想根据事件的震级设置地震标记的颜色属性(即震级>3为“黄色”)

下面是错误消息:

Exception in thread "Animation Thread" java.lang.NullPointerException
at de.fhpotsdam.unfolding.marker.AbstractMarker.getProperty(Unknown Source)
at module3.EarthquakeCityMap.setup(EarthquakeCityMap.java:101)
at processing.core.PApplet.handleDraw(PApplet.java:2365)
at processing.opengl.PJOGL$PGLListener.display(PJOGL.java:873)
at jogamp.opengl.GLDrawableHelper.displayImpl(GLDrawableHelper.java:690)
at jogamp.opengl.GLDrawableHelper.display(GLDrawableHelper.java:672)
at javax.media.opengl.awt.GLCanvas$10.run(GLCanvas.java:1383)
at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1277)
at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:1131)
at javax.media.opengl.awt.GLCanvas$11.run(GLCanvas.java:1394)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
这是代码

for (Marker marker:markers) {
    if ((int) (marker.getProperty("magnitude")) > 3) {
        System.out.println("trying to set the colour to yellow");
        //marker.setColor(yellow);
        }
    }
带有“setColor(yellow)”的行被注释掉,因为这似乎是它自己的问题(可能与此有关,也可能与此无关)


有人知道这可能是从哪里来的,我可以读些什么来更好地理解这个问题?我对编程相当陌生,因此任何关于如何学习跟踪错误/找出问题原因的过程的建议都将非常棒。

您的问题不是“未知源”,而是
NullPointerException
的问题。我假设变量
markers
在您尝试迭代时为空。您在哪里定义黄色?如果未在任何地方声明,则不能设置这样的颜色<代码>标记.设置颜色(颜色.黄色)这应该正确设置颜色。
marker
null
?从源代码看,
AbstractMarker
properties
对象似乎从未设置过,并且是null,这在调用
getProperty
时为您提供了一个null指针。请参见此处的代码:。您可能必须使用一个带有属性参数的构造函数,或者以某种方式调用
setProperties
。您可以发布代码来读取RSS并创建标记吗?除了转换为int(至少对于原始示例中的RSS不应该工作(但也不会导致NPE)之外,您的代码看起来还不错。有关示例,请参见(有关P3的展开,但很少有更改)。