2013-10-03 89 views
3

我有一个静态函数,它接受一个叫X.访问阴影变量从匿名类

在这种静态函数创建一个匿名类参数。这个类应该有一个成员变量,也称为X.

从匿名类的函数中,如何访问函数的参数X?

举例说明:

class Test { 

    static void func(final List<T> X) { 

     new Test() { 
      final T[] X = ?.X.toArray(); 
     }; 
    } 
} 

在我真正的代码,我要创造我从列表中参数的匿名类(通过toArray()在匿名类的初始化)一个数组,我想重新使用相同的变量名称,而不是使用匈牙利符号来区分它们。

+1

为什么不添加另一个名称不是'X'的静态函数内部的变量,然后从匿名类中调用它? – m1o2

+0

@ m1o2是的,但它是大量的变量名称相近,只是表示我试图清理的替代数据类型。如果我可以更改变量的类型,我的代码将会更清晰。 – Will

回答

5

这在Java中是不可能的。函数参数没有像“this”这样的“名称空间”,您可以使用它来表示您指的是哪个变量。

唯一的解决方案是创建一个任意前缀,如外部参数outerX或内部参数xAsArray