java - 将对象转换为 ArrayList<String>

标签 java casting arraylist

是否可以转换 Object例如ArrayList<String>

下面的代码给出了问题的示例。问题在最后一行

setDocs((ArrayList<Document>)obj);

我想在哪里转换 Object objArrayList<String>

public void setValue(Object obj)
    {
        if(obj instanceof TFile)
            setTFile((TFile)obj);
        else
            if(obj instanceof File)
                setFile((File)obj));
            else
                if(obj instanceof Document)
                    setDoc((Document)obj);
                else
                    if(obj instanceof ArrayList)
                        setDocs((ArrayList<Document>)obj);

    }

最佳答案

在 Java 中,泛型没有具体化,即在转换时不使用它们的泛型类型。

所以这段代码

setDocs((ArrayList<Document>)obj);

将被执行为

setDocs((ArrayList)obj);

由于运行时转换不会检查您的 ArrayList 是否包含 Document 对象,因此编译器会发出警告。

关于java - 将对象转换为 ArrayList<String>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19269278/

相关文章:

java - Logstash 2.3.3 多行过滤器不适用于多个工作人员

java - inMutable 无法解析或不是字段

java - 关于类变量的向上转换和向下转换有什么区别

java - 将 ArrayList 转换为 List<GenericModel> 给出 ClassCastException

java - Java中无法存储多个输入值

java - 在循环中的 ArrayList.add() 之后,所有元素都是相同的。为什么?

java - 从最近到最远对 Java 列表进行排序(具有多个键)

java - 为什么编译后的java字节码文件被称为类文件?

java huffman 压缩器输出比原来大

gcc - 类型转换时更改对齐要求