如何使用签名创建方法作为List

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)

Mic*_* B. 3

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)

您的实例需要一个变量

和回报。