Lon*_*don 5 java generics collections
我是Java编程语言的新手,所以这可能是一个愚蠢的问题,但我不得不问它,因为我无法自己弄明白.这是交易.
我想创建从列表中提取某些对象类型的方法.因此该方法应该接收List作为参数,意味着list应该包含Object1或Object2.我试过这样的:
public Object1 extractObject(List<Object>){
//some pseudo-code
... loop trough list and check if list item is instance of object one return that instance
}
Run Code Online (Sandbox Code Playgroud)
使用List<?>
as方法参数声明方法的问题是我从eclipse收到编译错误Syntax error on token ">", VariableDeclaratorId expected after this token
.
如何正确设置方法签名以接受Object1或Object2的对象类型?谢谢
这是我的代码:
protected Object1 getObject1(List<Object> list){
for(Object obj : list) {
if(obj instanceof Object1) {
return (Object1) obj;
}
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
编辑 - 这两者之间有什么区别:
public Object1 getObject1(List<Object> list){
for(Object obj : list) {
if(obj instanceof Object1) {
return (Object1) obj;
}
}
return null;
}
public Object1 extractObject(List<Object> list, Class<Object1> type) {
for(Object obj : list) {
if(type.isInstance(obj)) {
return (Object1)obj;
}
}
return null; // no match found
}
Run Code Online (Sandbox Code Playgroud)
public Object1 extractObject(List<?> list){
//some pseudo-code
... loop trough list and check if list item is instance of object one return that instance
return null;
}
Run Code Online (Sandbox Code Playgroud)
您的实例需要一个变量
和回报。
归档时间: |
|
查看次数: |
1046 次 |
最近记录: |