繁体   English   中英

java:将对象转换为列表

[英]java: convert object to list

我有以下课程:

public class UnidadOrganicaArbol {

protected long codigo;
@XmlElement(required = true)
protected String denominacion;
protected boolean tieneOficinaRegistro;
protected int prelacion;
@XmlElement(required = true)
protected UnidadesOrganicasArbol subunidades;

/*getters and setters*/
}

并且还有

public class UnidadesOrganicasArbol
extends ListadoBase
{

protected List<UnidadOrganicaArbol> unidadOrganicaArbol;


public List<UnidadOrganicaArbol> getUnidadOrganicaArbol() {
    if (unidadOrganicaArbol == null) {
        unidadOrganicaArbol = new ArrayList<UnidadOrganicaArbol>();
    }
    return this.unidadOrganicaArbol;
}

如您所见, UnidadOrganicaArbol类有一个属性subunidades ,它是一个UnidadesOrganicasArbol类,它有一个List<UnidadOrganicaArbol>属性。

所以,我有一个包含List<UnidadOrganicaArbol>属性的UnidadOrganicaArbol类。

假设我有:

在此处输入图片说明

您知道将 uoa1(或任何其他 UnidadOrganicaArbol 对象)及其子对象转换为一个列表的通用算法吗?

我尝试了几种方法,但都没有成功。 提前致谢。

public List<UnidadOrganicaArbol> collectToList(UnidadOrganicaArbol arbol) {
    List<UnidadOrganicaArbol> result = new ArrayList<>();
    result.add(arbol);
    UnidadesOrganicasArbol children = arbol.getUnidadesOrganicasArbol();
    if (children != null) {
        for (UnidadOrganicaArbol child : children.getUnidadOrganicaArbol()) {
            result.addAll(collectToList(child));
        }
    }
    return result;
}

将为您提供上图的列表 [\\, 7, 3, 6, 4, 5, 1, 2] 。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM