исключение нулевого указателя: скалярное расширение класса Java - PullRequest
3 голосов
/ 08 ноября 2011

Я пытаюсь использовать Scala для своих проектов обработки.

Я расширил класс Rect с ToxicLibs , но яполучение исключения нулевого указателя при попытке вызвать 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
   }
}

есть идеи?

1 Ответ

1 голос
/ 09 ноября 2011

Ааа, я понял:

class ScalaP5Test extends PApplet {

  var gfx = null

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

    ...

  }

  ...

}

Затем вы можете повторно использовать переменную в других функциях.Я не уверен, что это лучший способ, поэтому, если у вас есть лучший способ, дайте мне знать!

...