java - 适合在数组列表中使用的泛型

标签 java arraylist

我正在使用 Arraylist保存异构数据...混合String , intclass对象(这些对象可以是我定义的任何类的实例。)。我已经初始化了 ArrayList作为ArrayList<Object> = new ArrayList<Object> .

但我想我听说过有人说直接引用对象是……。不好/不受欢迎?我指的是这些对象,因为我找不到任何适合我的情况的泛型。可以使用还是有合适的泛型? (我对 Java 比较陌生)

最佳答案

为每种类型使用不同的列表并将这些列表保存在映射中,您可以使用类对象作为键,这样它就不会混淆并且易于访问。

 Map<Class<?>,List<?>> map = new HashMap<Class<?>,List<?>>();
 map.put(String.class, new ArrayList<String>());
 map.put(Integer.class, new ArrayList<Integer>());
 map.put(Class.class, new ArrayList<Class<?>>());

编辑:

P.S:如果您想将新对象添加到列表中,当您从 map 中检索列表时,您仍然会收到未检查的警告。

public static void main(String[] args) {
        Map<Class<?>,List<?>> map = new HashMap<Class<?>,List<?>>();
        map.put(String.class, new ArrayList<String>());
        map.put(Integer.class, new ArrayList<Integer>());
        map.put(Class.class, new ArrayList<Class<?>>());

        String str = "deneme";

        @SuppressWarnings("unchecked")
        List<String> strList =  (List<String>) map.get(String.class);
        strList.add(str);
        strList.add("str2");
        strList.add("str2");

        @SuppressWarnings("unchecked")
        List<Class<?>> classList =  (List<Class<?>>) map.get(Class.class);
        classList.add(String.class);
        classList.add(Integer.class);
        classList.add(Double.class);


        for(String currentStr:strList){
            System.out.println(currentStr);
        }
    }

关于java - 适合在数组列表中使用的泛型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5116269/

相关文章:

java - 如何从命令提示符运行 jar 文件

java - 触摸按钮时发出哔声

Java - 对于数组,删除偶数

grails - 如何从Arraylist中替换字符串而无需在Grails中进行迭代?

Java:ArrayList 说索引 0 不存在,除非我在父循环中包含字符串

java - 从 Android 中的 SQL 查询中的 CursorAdapter 支持的 Spinner 获取字符串值

java - 从文件返回数组列表

java - ArrayList不包含字符串

java - ArrayList索引越界异常

java.lang.AssertionError : org. hibernate.exception.SQLGrammarException:无法插入: