我正在尝试为一个类创建一个构造函数
// Variables to send to Host
private class ParameterClass {
public String parameter;
public int value;
public Boolean sended;
}
public class SendToHostClass {
private int sizeBuffer;
public ParameterClass[] parameterList;
SendToHostClass(int sizeBufferConf) {
sizeBuffer = sizeBufferConf;
parameterList = new ParameterClass[sizeBuffer];
}
public void Put (String parameter, int valuePut, Boolean sendedPut) {
for (int index=0; index<sizeBuffer; index++) {
if (parameter == parameterList[index].parameter) {
parameterList[index].value = valuePut;
parameterList[index].sended = sendedPut;
exit();
}
}
}
}
所以我声明了变量
SendToHostClass sendToHost;
sendToHost
并在setup()
处理方法中使用实例化
sendToHost = new SendToHostClass(10);
sendToHost.parameterList[0].value = 0;
当我运行代码时,它会返回错误消息
在 processing.core.PApplet.handleDraw(PApplet.java:2117) 在 processing.opengl.PGL$PGLListener.display(PGL .java:2472) 在 jogamp.opengl.GLDrawableHelper.displayImpl(GLDrawableHelper.java:548) 在 jogamp.opengl.GLDrawableHelper.display(GLDrawableHelper.java:533) 在 jogamp.opengl.GLAutoDrawableBase$2.run(GLAutoDrawableBase.java:280) )在 jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:904) 在 jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:822) 在 com.jogamp.newt.opengl.GLWindow.display(GLWindow.java:543)在 processing.opengl.PGL.requestDraw(PGL.java:814) 在 processing.core.opengl.PGraphicsOpenGL.requestDraw(PGraphicsOpenGL.java:1566)。PApplet.run(PApplet.java:2020) 在 java.lang.Thread.run(Thread.java:662)
那么我做错了什么?
我还发现,如果我分别实例化每个列表对象,它不会出错:
sendToHost = new SendToHostClass(10);
sendToHost.parameterList[0] = new ParameterClass();
sendToHost.parameterList[0].value = 0;
但这似乎是错误的,因为看起来parameterList
成员被实例化了两次。
提前致谢。