Red de conocimiento de abogados - Derecho de sociedades - Java recupera objetos de listas de objetos según los atributos del objeto

Java recupera objetos de listas de objetos según los atributos del objeto

paquete?prueba;

importar?java.beans.IntrospectionException;

importar?java.beans.PropertyDescriptor;

¿importar? java.lang.reflect.InvocationTargetException;

importar?java.lang.reflect.Method;

importar?java.util.ArrayList;

importar?java .util.Arrays;

importar?java.util.Iterator;

¿clase pública?AList?extends?ArrayList?{

/* *

?*?

?*/

privado?static?final?long?serialVersionUID?=?-5626405721508120479L;

public?A?getSubject(String?name,?Object?value)

throws?IllegalAccessException,?IllegalArgumentException,

InvocationTargetException,?IntrospectionException?{

A []?resultado?=?getSubjects(nombre,?valor);

if?(resultado.longitud?<=?0)

return?null;

else

return?resultado[0];

}

public?A[]?getSubjects(String?nombre,?Objeto?valor)

throws?IntrospectionException,?IllegalAccessException,

IllegalArgumentException,?InvocationTargetException?{

PropertyDescriptor?pd?=?new?PropertyDescriptor(nombre,?A.clase) ;

Método?getter?=?pd.getReadMethod();

Iterador?it?=?this.iterator();

A []?resultado?=?nuevo?A[0];

mientras?(it.hasNext())?{

A?obj?=?it.next() ;

¿Objeto?theValue?=?getter.invoke(obj);

if?(theValue?!=?null?&&?theValue.equals(value))?{

resultado?=?Arrays.copyOf(resultado,?result.length?+?1);

resultado[resultado.length?-?1]?=?obj; p>

}

}

return?resultado;

}

public?static?void?main(String[]?args)?throws?IllegalAccessException,

IllegalArgumentException,?InvocationTargetException,

IntrospectionException?{

AList?al?=?new?AList();

A?a?=? new?A("张三");

a.setAge(18);

a.setGender("Male");

a.setSchool ("Universidad XX");

A?b?=?new?A("李思");

b.setAge(20);

b.setGender("masculino");

b.setSchool("Universidad XX");

A?c?=?new?A("王五");

c.setAge(18);

c.setGender("Mujer");

c.setSchool("XX Universidad");

al.add(a);

al.add(b);

al.add(c);

System.out. println(Arrays.toString(al.getSubjects("nombre",?"Zhang San")));

System.out.println(Arrays.toString(al.getSubjects("edad",?18 )));

System.out.println(Arrays.toString(al.getSubjects("gender",?"male")));

System.out.println( Arrays.toString(al.getSubjects("escuela",?"XX Universidad")));

///?[A?[name=张三,?age=18,?gender=male] ]

///?[A?[nombre=张三,?edad=18,?género=hombre],?A?[nombre=王五,?edad=18,?género=mujer] ]

//?[A?[nombre=Zhang San,?edad=18,?género=hombre],?A?[nombre=李思,?edad=20,?género=hombre] ]

//?[A?[nombre=Zhang San,?edad=18,?género=hombre],?A?[nombre=李思,?edad=20,?género=hombre] ,?A?[nombre=王五,?edad=18,?género=mujer]]

}

}

clase?A?{

privado?Cadena?nombre;

privado?int?edad;

privado?Cadena?género;

privado?Cadena?escuela ;

public?String?getSchool()?{

return?school;

}

public?void?setSchool(String ?escuela)?{

esta.escuela?=?escuela;

<

p> }

público?A(Cadena?nombre)?{

super();

este.nombre?=?nombre;

}

¿público?String?getGender()?{

return?gender;

}

¿público?void? setGender(String?gender)?{

this.gender?=?gender;

}

public?int?getAge()?{

return?age;

}

public?void?setAge(int?age)?{

this.age?=?age;

}

public?String?getName()?{

return?nombre;

}

public?void?setName(String?name)?{

this.name?=?name;

}

@Override

public?String?toString()?{

return?"A?[name="?+?name?+?",?age="?+?age?+?",?gender ="?+?género?+?"]";

}

}