【问题标题】:null pointer exception: scalar extension of a java class空指针异常:Java 类的标量扩展
【发布时间】:2011-12-24 03:21:11
【问题描述】:

我正在尝试将 Scala 用于我的处理项目。

我已经从 ToxicLibs 扩展了 Rect 类,但是当我尝试从方法中调用 rect(toxi.geom.Rect r) 时遇到空指针异常。

import toxi.processing.ToxiclibsSupport
import toxi.geom.{ Vec2D, Rect }

class Scope(x: Float, y: Float, width: Float, height: Float) extends Rect(x, y, width, height) {

  def this(r: Rect) {
    this(r.x, r.y, r.width, r.height)
  }

  def draw(gfx: ToxiclibsSupport) {
    gfx.rect(this) // null pointer exception occurs here 
  }

}

这是调用draw方法的代码:

import processing.core.PApplet
import toxi.processing.ToxiclibsSupport
import toxi.geom.Rect

class ScalaP5Test extends PApplet {

  var gfx = new ToxiclibsSupport(this)

  override def setup() {
    size(1000, 800)
  }

  override def draw() {
    var scope = new Scope(100, 200, 400, 300)
    scope.draw(gfx) // draw called here
   }
}

有什么想法吗?

【问题讨论】:

  • 啊,我明白了。我将 gfx 初始化更改为:var gfx: ToxiclibsSupport = null 并将 gfx = new ToxiclibsSupport(this) 添加到 setup()
  • 请添加您的答案并接受它然后:-)
  • 我已经试过了;)。我没有足够的积分,所以我要再等 6 个小时才能回答自己。

标签: java scala nullpointerexception processing


【解决方案1】:

啊,我明白了:

class ScalaP5Test extends PApplet {

  var gfx = null

  override def setup() {
    gfx = ToxiclibsSupport(this)

    ...

  }

  ...

}

然后您可以在其他函数中重用该变量。我不确定这是否是最好的方法,所以如果你有更好的方法,请告诉我!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多