Java 例如,如何使用反射查找类中使用的ArrayLIst的类成员名称?
如何使用反射来确定将哪个变量传递到方法中 范例Java 例如,如何使用反射查找类中使用的ArrayLIst的类成员名称?,java,android,reflection,inner-classes,Java,Android,Reflection,Inner Classes,如何使用反射来确定将哪个变量传递到方法中 范例 public class ExampleClass { // class member variables ArrayList<String> strArrayOne; ArrayLIst<String> strArrayTwo; //constructor public ExampleClass()[ strArrayOne = new ArrayList<String>();
public class ExampleClass {
// class member variables
ArrayList<String> strArrayOne;
ArrayLIst<String> strArrayTwo;
//constructor
public ExampleClass()[
strArrayOne = new ArrayList<String>();
strArrayTwo = new ArrayList<String>();
}
// create instance of nested class passing in the required ArrayList in constructor
NestedInnerClass testInstance = new NestedInnerClass(strArrayOne);
// nested inner class
public class NestedInnerClass{
// class member variable
ArrayList<String> memberArray = new ArrayList<String>();
// constructor
public NestedInnerClass(ArrayList<String> inputArray){
memberArray = inputArray;
// put code here to determine with reflection which of the
// two outer class variables is being passed in strArrayOne or strArrayTwo?
}
} // end nested inner class
} // end outer class
公共类示例类{
//类成员变量
ArrayList strArrayOne;
strArrayTwo;
//建造师
公共示例类()[
strArrayOne=新的ArrayList();
strArrayTwo=新的ArrayList();
}
//在构造函数中创建传入所需ArrayList的嵌套类的实例
NestedinerClass testInstance=新的NestedinerClass(strArrayOne);
//嵌套内部类
嵌套的公共类NestedinerClass{
//类成员变量
ArrayList memberArray=新的ArrayList();
//建造师
公共嵌套类(ArrayList inputArray){
memberArray=输入阵列;
//将代码放在这里,通过反射确定
//两个外部类变量正在Strarayone或Straraytwo中传递?
}
}//结束嵌套的内部类
}//结束外部类
不需要反射就可以了。检查传递的数组和封闭类字段是否相等就足够了:
if (Arrays.equals(inputArray, ExampleClass.this.strArrayOne)) {
// first one has been passed
}
if (Arrays.equals(inputArray, ExampleClass.this.strArrayTwo)) {
// second one has been passed
}
为什么要反射?
inputArray==strArrayOne
应该足够了。此外,为什么不在内部类方法中使用实际的成员变量呢?这些都是很好的问题,我想这项工作有比反射更好的工具。