在Java中,如何在新的侦听器块中访问静态方法参数?

我有一个接受几个参数的静态方法。 在方法内部,我正在创建一个新对象并为其附加一个新的侦听器。 问题是监听器块需要访问外部静态方法变量,但我不知道如何引用它们。 我知道如何使用非静态方法实现这一点,而不是使用静态方法。

这是代码:

v.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_UP: ((Activity)*context*).startActivityForResult(*intent*, 0); break; } return true; } }); 

由星号包围的上下文和意图变量是传递给静态方法的对象。 由于OnTouchListener是一个内部块,因此它不知道这些对象。 我怎样才能参考它们?

在创建侦听器之前,将静态方法的参数声明为final,或者将传入的参数分配给静态方法中的最终局部变量。 您可以使用匿名类定义中的最终引用。