我想使用匿名内部类来处理程序中对象的鼠标操作。但是,根据参数,我希望内部类的行为有所不同。例如:
Rectangle r1 = rectangleBuilder (Color.Red);
Rectangle r2 = rectangleBuilder (Color.Blue);
public Rectangle rectangleBuilder (final Color c) {
r = new Rectangle (100, 100, c);
r.dragListener = new DragListener () {
@Override
public void drag (double x, double y) {
if (c == Color.Red) {
r.setPosition (x, y);
}
if (c == Color.Blue) {
r.setPosition (2 *x, 2 *y);
}
}
}
return r;
}
这个想法是,在创建对象时,拖动对象时的行为由其颜色决定。这工作正常,但现在由于某种原因,我收到一个异常,说 c (Color) 为空。我想知道这种方法在Java中是否可行。