pad*_*dre 2 java casting arraylist
是否可以施放Object到例如ArrayList<String>
下面的代码给出了一个问题的例子.问题出在最后一行
setDocs((ArrayList<Document>)obj);
Run Code Online (Sandbox Code Playgroud)
在这里我想投一个Object obj,以ArrayList<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);
}
Run Code Online (Sandbox Code Playgroud)
在Java中,泛型不具体化,即在转换时不使用它们的泛型类型.
所以这段代码
setDocs((ArrayList<Document>)obj);
Run Code Online (Sandbox Code Playgroud)
将被执行为
setDocs((ArrayList)obj);
Run Code Online (Sandbox Code Playgroud)
由于运行时强制转换不会检查ArrayList包含Document对象,因此编译器会发出警告.
| 归档时间: |
|
| 查看次数: |
44157 次 |
| 最近记录: |