【发布时间】:2010-05-17 14:30:52
【问题描述】:
我对 Java 编程语言很陌生,所以这可能是个愚蠢的问题,但我不得不问它,因为我自己无法弄清楚。这是交易。
我想创建从列表中提取特定对象类型的方法。所以该方法应该接收 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
}
使用List<?> 作为方法参数声明方法的问题是我收到来自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;
}
编辑 - 这两个有什么区别:
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
}
【问题讨论】:
标签: java generics collections