Java:访问Downloaded Object中的字段

时间:2013-09-17 23:41:29

标签: java

我是Java新手,但了解Objective-C。我需要访问字段<键,值>在下载的对象中。

以下是代码:

carSchemacar_id是要查询的字段

Map<String, List<SMObject>> feedback = new HashMap<String, List<SMObject>>();
List<SMCondition> query = new ArrayList<SMCondition>();
DataService ds = serviceProvider.getDataService();
List<SMObject> results;

try {
            query.add(new SMEquals("car_id", new SMString(make)));
            results = ds.readObjects("car", query);

            if (results != null && results.size() > 0) {
                feedback.put(make, results);
            }

    }
....

results是从远程数据库下载的一个Object,它基本上是一个HashMap。假设每次只返回一个对象,访问Key&amp;的代码是什么?返回结果对象中的值?

Complete Code in case you want to see it.

修改

我可以这样做:

    SMObject resultObj;

     if (results != null && results.size() > 0) {
            resultObj = results[0];
            resultObj.put("resolved", "1");
            resultObj.put("accepted", "1");
            resultObj.put("declined", "0");

            String model = (String)resultObj.get("model");
        }

1 个答案:

答案 0 :(得分:1)

如果你想要所有的钥匙,你可以这样做:

Map<String, List<SMObject>> feedback = new HashMap<String, List<SMObject>>();
List<String> myKeys = feedback.keySet();

要获取值,您可以使用get方法:

Map<String, List<SMObject>> feedback = new HashMap<String, List<SMObject>>();
feedback.get("yourKey"); 

有关详细信息,请查看:http://docs.oracle.com/javase/7/docs/api/java/util/HashMap.html

编辑:

SMObject resultObj;

 if (results != null && results.size() > 0) {
        List<SMObject> myResults = feedback.get(make); 
        resultObj = myResults.get(0);
        resultObj.put("resolved", "1");
        resultObj.put("accepted", "1");
        resultObj.put("declined", "0");

        String model = (String)resultObj.get("model");
    }

一般概念是您使用密钥来获取hashMap的值。该值恰好是一个对象列表;因此,您还需要迭代该列表并从列表中检索每个对象。