在JAVA中,有没有一种方法可以在接口及其专用化之间转换?
我的代码中有以下三个接口:在JAVA中,有没有一种方法可以在接口及其专用化之间转换?,java,oop,interface,Java,Oop,Interface,我的代码中有以下三个接口: 公共接口父接口{ //一些性质和方法 } 公共接口ChildOne扩展了ParentInterface{ //一些额外的属性和方法 } 公共接口ChildTwo扩展了ParentInterface{ //一些额外的属性和方法 } 我有一些函数void someFunc(List),它应该能够接受混合列表,实例实现ChildOne或ChildTwo。但是如果我有一个列表?调用someFunc有比这个更好的方法吗 List coList=new HashList();
公共接口父接口{
//一些性质和方法
}
公共接口ChildOne扩展了ParentInterface{
//一些额外的属性和方法
}
公共接口ChildTwo扩展了ParentInterface{
//一些额外的属性和方法
}
我有一些函数void someFunc(List)
,它应该能够接受混合列表,实例实现ChildOne
或ChildTwo
。但是如果我有一个列表
?调用someFunc
有比这个更好的方法吗
List coList=new HashList();
//将一些项目添加到列表中
List piList=新的HashList(coList.size());
piList.addAll(coList);
someFunc(piList);
难道我不能像这样调用someFunc(coList)而不必创建新列表吗?正如Jon Skeet在评论中建议的那样,我将函数的签名更改为
void someFunc(list可能有助于让您的方法接受List@JonSkeet谢谢你,伙计,这很有魅力!