从字符串列表中调用字段名称

时间:2014-03-25 16:34:30

标签: java string list field

我有一个班级:

public interface ControlService extends RemoteJsonService
{

    public void myValues( String [] Names, AsyncCallback<Map<String,RegisterValues>> callback); 

    public class RegisterValues
    {
        int FirstField;
        int SecondField;
                //etc. 200 times

我有一个字符串:

String[] fieldValues = new String[]{"FirstField", "SecondField", ....}; //200 of these

我试图呼吁这些领域(重要的部分是走向终点):

public class RegistersPanel implements TestStandPanel, ChangeHandler
{
    private ControlService service_;

    public RegistersPanel(){

        service_.RegisterValues( Names, new AsyncCallback<Map<String,ControlService.RegisterValues>>()
                {
                public void onSuccess( Map<String,ControlService.RegisterValues> result )
                    {

                        for( String Name : result.keySet() ){
                            for (String Values : fieldValues){
                                message+=result.get(Name).getField(Values); //something like this but I can't quite figure out the syntaxt
                                //message+=result.get(Name).FirstField; this is tedious 
                            }

正如你所看到的,我不能只使用getField,Eclipse没有给我任何有用的选择 - 任何建议?

1 个答案:

答案 0 :(得分:0)

我认为这是你在double for循环中寻找的东西,

RegisterValues  regValue=reuslt.get(Name);      
regValue.getClass().getDeclaredField(Values).getInt(regValue);

这不是确切的解决方案。这只是让您访问该类中的字段值。 P.S:如果改为Values

value会很好看