Crear ООН objeto Java partir de una lista de otros objetos [cerrada]

Tengo una clase Torres классы que está compuesta por otras Plaques y Memories жабы heredan de Producto :

public class Torres extends Producto {
    private Plaques plaques;
    private Memories memories;

    public Torres(String codiIntern, String descripcio, String nomFab, double preuC, double preuBrut, int estoc,Plaques plaques,Memories memories) {
        super(codiIntern, descripcio, nomFab, preuC, preuBrut, estoc);
        this.memories = memories;
        this.plaques = plaques;
    }
}

También dispongo de un TreeMap сын que representa Лос компоненты подставляет los que se formara el objeto Torres, formado подставляют diferentes Plaques y Memories. La clave es el codiIntern, сын y el valor unicamente objetos Plaques y Memories

torres = new TreeMap<String,Producto>();

Кри Mi duda sería cómo hacer un método que me ООН objeto de Torres обманный todos los elementos de la lista TreeMap. СИ por ejemplo сушит сено 2 Plaques y 1 Memories deberia de crear una Torre que tenga esas 2 Plaques y 1 Memories.

0
задан 12.01.2017, 10:57
0 ответов

Правда состоит в том, что не остается очень ясным вопрос и кроме того лишенная информация о классах Plaques и Memories, но если я это понял хорошо, что ты хочешь, состоит в том, чтобы строить объекты Torres с информацией, которая у тебя есть в карте объектов Plaques и Memories и твое сомнение - как знание, которое каждого типа, чтобы это двигать в свойство или другую. Чтобы знать тип ты был бы должен использовать instanceof.

Если все объекты коллекции принадлежат тому же объекту Torresты мог бы менять объекты на коллекции и добавлять используя свойства вместо того, чтобы добавлять объекты прямо к строителю. Класс остался бы таким:

public class Torres extends Producto {
    private List<Plaques> plaques = new ArrayList<Plaques>();
    private List<Memories> memories = new ArrayList<Memories>();

    public List<Plaques> getPlaques() {
        return plaques;
    }

    public void setPlaques(List<Plaques> plaques) {
        this.plaques = plaques;
    }

    public List<Memories> getMemories() {
        return memories;
    }

    public void setMemories(List<Memories> memories) {
        this.memories = memories;
    }

    public Torres(String codiIntern, String descripcio, String nomFab, double preuC, double preuBrut, int estoc) {
        super(codiIntern, descripcio, nomFab, preuC, preuBrut, estoc);
    }
}

И ты мог бы пробегать ее так:

Torres newTorre = new Torres(null, null, null, 0, 0, 0);
Map<String, Producto> torres = new TreeMap<String, Producto>();

for(Producto myTorres: torres.values()) {
    if(myTorres instanceof Plaques) {
        newTorre.getPlaques().add((Plaques) myTorres);
    } else {
        newTorre.getMemories().add((Memories) myTorres);
    }
}

Это, принимая, что объекты Plaques и Memories они увеличивают Producto.

1
ответ дан 03.12.2019, 17:44
  • 1
    mofidicado вопрос, посмотрим сейчас понимают лучше. В карте нет объектов Torres только Plaques и Memories. –  12.01.2017, 10:59
  • 2
    С новым комментарием я верю в то, что solució n он má s простой. Я cambiarí в объекты Plaques и Memories из-за коллекций объектов Plaques и Memories. Ты выставляешь их как два свойства и убираешь их от строителя. Ло demá s он má s или менее как ты comenté раньше, но má s fá cil. Только tendrí эксперт, который должен пробегать colecció n идентифицируя тип с ì nstanceof y añadirlos al objeto Башен' используя свойства, созданные раньше. –  12.01.2017, 11:10
  • 3
    Я не понимаю, когда ты говоришь менять объекты из-за coleccciones объектов, - немного начинающий в Java, и согласно которому вещи убегают от меня. Потом в этом выставления как свойства он такой, как это у меня есть, но убирая это от строителя? И в конце концов я понимаю, что нужно делать for в TreeMap и идти añ adiendo элементы в объект Torres, хотя не очень хорошо, как делать это. Спасибо –  12.01.2017, 11:40
  • 4
    Я изменил тебе ответ. Посмотрим он подает это тебе. –  12.01.2017, 12:06