Hola a todos sucede que tengo varias clases que extienden de CommonData, no se bien como funciona esto del extends en java ya que soy nuevo en este lenguaje pero me gustria generar una clase generica que permita compartir ciertas funciones sin la necesidad de estar creando una clase para cada objeto ejemplo este porblema lo tengo por lo siguinete estoy trabajando con hibernate y tengo la siguinete duplicidad de codigo
public Collection<AtencionDTO> findByCriteria(
final Criteria criteria) {
return getDAOSupport().findByCriteria(criteria);
}
public AtencionDTO selectByID(final int pk) {
return (AtencionDTO) getDAOSupport().findByPrimaryKey(
AtencionDTO.class, pk);
}
public AtencionDTO add(final AtencionDTO mant) {
if (mant == null) {
throw new IllegalArgumentException("Parameter can't be null");
}
getDAOSupport().save(mant);
return mant;
}
/*********************************************/
public Collection<InsumoDTO> findByCriteria(
final Criteria criteria) {
return getDAOSupport().findByCriteria(criteria);
}
public InsumoDTO selectByID(final int pk) {
return (InsumoDTO) getDAOSupport().findByPrimaryKey(
InsumoDTO.class, pk);
}
public InsumoDTO add(final InsumoDTO mant) {
if (mant == null) {
throw new IllegalArgumentException("Parameter can't be null");
}
getDAOSupport().save(mant);
return mant;
}
si se ven las funciones hacen lo mismo el unico problema es que por devolver tipo de objetos distintos necesito crear cada funcion y su respectiva clase data es por eso que me gustria saber si se puede hacer algo generico que me permita obtener los resultados y hacer la consulta de forma generica??????
public Collection<ObjetoCualquiera > findByCriteria(
final Criteria criteria) {
return getDAOSupport().findByCriteria(criteria);
}
public ObjetoCualquiera selectByID(final int pk) {
return (ObjetoCualquiera ) getDAOSupport().findByPrimaryKey(
ObjetoCualquiera .class, pk);
}
public ObjetoCualquiera add(final InsumoDTO mant) {
if (mant == null) {
throw new IllegalArgumentException("Parameter can't be null");
}
getDAOSupport().save(mant);
return mant;
}