用Mockito之前的Java创建注释

时间:2014-04-06 08:49:12

标签: java annotations processing

在处理过程中,我有几个函数可以改变applet的属性来绘制东西,例如:

public void resetBackground(PApplet pApplet){
pApplet.fill(175);
pApplet.noStroke();
pApplet.rect(0,0,100,100);
}

但是我希望这些函数在函数调用之后保留pApplet的状态,因为我有类似的东西:

public void resetBackground(PApplet pApplet){
SaveAndRestoreDefaults saveAndRestoreDefaults = new SaveAndRestoreDefaults(pApplet);
// Code that changes state.
saveAndRestoreDefaults.restoreOriginals();
}

现在这对我有用,但我希望这不会使我的代码混乱,而是注释驱动,如:

@PreserveState
public void resetBackground(){
// code that changes state.
}

我对它做了一些研究,但这似乎不是一件容易的事。谷歌搜索带我去AOP,我不想花时间去学习。有没有更简单的方法来实现相同的目标?

谢谢:)

1 个答案:

答案 0 :(得分:0)

我强烈建议留在Processing,而不是深入到底层虚拟机API(仅仅因为你在java中运行它,并不意味着Processing的每个实现都有一个JVM。Processing.js来了记住)。

只需制作一个州级课程并跟踪:

class SketchState {
  color background_color, stroke_color, fill_color;
  SketchState(color bg, color st, color fl) {
    sketch = s; background_color = bg; stroke_color = st; fill_color = fl;
  }
}

ArrayList<SketchState> stateCache = new ArrayList<SketchState>();

void cacheState() {
  stateCache.add(new SketchState(...));
}

void restoreState() {
  SketchState rest = stateCache.remove(stateCache.size()-1);
  background(rest.background_color);
  stroke(rest.stroke_color);
  fill(rest.fill_color);
}

并将要保存的其他状态方面添加到该类中。