一个类有很多静态变量:如下:public static final class string {
public static final int add_text_hint=0x7f06002e;
public static final int add_text_rCN=0x7f06002d;
public static final int app_text_nl=0x7f060002;
public static final int app_text_rTW=0x7f060001;
public static final int app_text_us=0x7f060012;
public static final int app_text_uk=0x7f060011;
}
我有现在想实现如下功能:public int getDeclaredFiled(String raw,String language){}调用方法如下:int a =getDeclaredFiled("add_text","_rCN");
int b =getDeclaredFiled("add_text","_nl");
int c =getDeclaredFiled("add_text","_rTW");
int d =getDeclaredFiled("add_text","_uk");
谢谢各位了!
public static final int add_text_hint=0x7f06002e;
public static final int add_text_rCN=0x7f06002d;
public static final int app_text_nl=0x7f060002;
public static final int app_text_rTW=0x7f060001;
public static final int app_text_us=0x7f060012;
public static final int app_text_uk=0x7f060011;
}
我有现在想实现如下功能:public int getDeclaredFiled(String raw,String language){}调用方法如下:int a =getDeclaredFiled("add_text","_rCN");
int b =getDeclaredFiled("add_text","_nl");
int c =getDeclaredFiled("add_text","_rTW");
int d =getDeclaredFiled("add_text","_uk");
谢谢各位了!
Class clazz=Class.forName(classname);
Field field=clazz.getDeclaredFiled(fieldname)
int value=field.getInt(fieldname);
不知道以上代码是不是行得通。
public static final int add_text_hint=0x7f06002e;
public static final int add_text_rCN=0x7f06002d;
public static final int app_text_nl=0x7f060002;
public static final int app_text_rTW=0x7f060001;
public static final int app_text_us=0x7f060012;
public static final int app_text_uk=0x7f060011;
public static Integer getDeclaredFiled(String raw,String language) throws IllegalArgumentException, IllegalAccessException{
Field fs[] = YourClass.class.getDeclaredFields();
String name = raw+language;
for(Field f:fs){
if (f.getName().equals(name))
return (Integer) f.get(null);
}
return null;
}
public static void main(String[] args) throws IllegalArgumentException, IllegalAccessException{
System.out.print(YourClass.getDeclaredFiled("app_text","_rTW"));
}
}