0

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

下面是代码:

car是一个Schema并且car_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 是一个从远程数据库下载的对象,它基本上是一个 HashMap。假设每次只返回一个对象,那么在返回的结果对象中访问 Key & Values 的代码是什么?

如果您想查看,请完成代码。

编辑

我可以做这样的事情:

    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");
        }
4

1 回答 1

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. 该值恰好是对象列表;因此,您还需要遍历该列表并从列表中检索每个对象。

于 2013-09-17T23:46:53.857 回答