繁体   English   中英

将通用列表转换为Java对象

[英]Convert generic list to java object

我正在对数据库执行查询,然后得到一个通用的对象列表。 总体对象的结构如下:

List<E> objDetails =
    [0] --> ["name1", "value1"]
    [1] --> ["name2", "value2"]
    ....
    [n] --> ["nameN", "valueN"]

简而言之,我得到了一个对象数组,在每个元素中,都有要访问的名称和值对。 获得这些价值的最简单方法是什么? 我正在考虑将整个列表转换为一个可以自行设计的可以容纳名称/值的类。 问题是一个是字符串,另一个是整数。

我有什么选择?

编辑:

这是我尝试定义的两个类以解决此问题

private static class Clinic {

    public List<ClinicDetails> details;
}

private static class ClinicDetails {

    private Integer objectID;
    private String healthName;

}

List<Clinic> clinic = DataServices.getResult(q);

编辑2:

这是我解决这个问题的方法

        List<Object[]> clinic = DataServices.getResult(q);

        for(Object[] obj: clinic) {

            for(int i = 0; i < obj.length; i++) {
                System.out.println(obj[i]);
                // will store in my own list now that I can access it
            }
        }

一个简单的地图如下所示:

Map m=new HashMap<String, String>();
m.put("Key", "Value");
m.put("Key2", "Value2");
assertEquals(m.get("Key"), "Value");
assertEquals(m.get("Key2"), "Value2");

这些解决了很多用例,但对于长期可重用的对象来说并不是很好。 每个人都使用“哈希”,但是如果您很好,则可以将其用法隔离到单个方法或单个类中。

这将实现一个通用对象,该对象可以如您所描述的那样被重用。

干杯!

`    public interface node<K,N> {
    public K getKey();
    public N getValue();
}
public class LogicalNode<K,N> implements node<K,N>{
    private K key;
    private N value;
    public LogicalNode(K key, N value) {
        this.key = key;
        this.value = value;
    }
    public K getKey() {return key;}
    public N getValue() {return value;}
}
public class arr2lst {
    public static void main(String[] args) {
        ArrayList<node<String, Integer>> rs = new ArrayList<node<String,Integer>>();
        rs.add(new LogicalNode<String, Integer>("name", nbr));
        rs.add(new LogicalNode<String, Integer>("name2", nbr2));
    }
}`

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM