我有一个简单的问题,我们需要在Object中计算变量:
class cot { int I; int j; int k; }
我们需要对cot []上的每次迭代计算变量(3), 我们有size()可以用来获取Object的Array List的大小。 但是如何在Object上找到每个迭代的变量计数。
我们知道它是三个,但需要动态对象。
答案 0 :(得分:1)
您可以使用Reflection API。这是一个例子:
import java.lang.reflect.Field;
public class cot{
int I; int j; int k;
String str;
public int CountAllVariables(){
// get reference to own class
Class<?> clazz = this.getClass();
// return amount of all fields
return clazz.getDeclaredFields().length;
}
public int CountAllInteger(){
int result = 0;
// get reference to own class
Class<?> clazz = this.getClass();
// check all fields
for ( Field field : clazz.getDeclaredFields() ) {
// count if it is an int field
if(int.class.isAssignableFrom(field.getType()))
result++;
}
return result;
}
}
现在您可以像这样使用它:
public static void main(String[] args){
cot c = new cot();
System.out.println( c.CountAllInteger()); // prints 3
System.out.println( c.CountAllVariables()); // prints 4
}
答案 1 :(得分:0)
使用反射:MyClass.class.getFields().length
查看this了解详情。