Soy muy nuevo en el lenguaje de programación Java así que esta es probablemente una pregunta tonta, pero tengo que preguntarlo porque no puedo resolverlo por mi cuenta. Aquí está el trato.Método creado con la firma como List
Quiero crear un método que extraiga cierto tipo de objeto de una lista. Por lo tanto, el método debe recibir List como argumento, lo que significa que la lista debe contener Object1 u Object2. He tratado de esta manera:
public Object1 extractObject(List<Object>){
//some pseudo-code
... loop trough list and check if list item is instance of object one return that instance
}
El problema con el método de declarar con List<?>
como argumento de un método es que recibo error de compilación de Eclipse Syntax error on token ">", VariableDeclaratorId expected after this token
.
¿Cómo configuro correctamente la firma del método para aceptar tipos de objetos, ya sea Object1 u Object2? Gracias
Este es mi Código:
protected Object1 getObject1(List<Object> list){
for(Object obj : list) {
if(obj instanceof Object1) {
return (Object1) obj;
}
}
return null;
}
Editar - ¿cuál es la diferencia entre estos 2:
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
}
disparar esto es: D – London
está bien con el casting adicional no compilará de otra manera – London
@London, es normal que necesite Cast, no pasó el tipo de Clase a tu lista. –