Как распечатать каталог объектов с разными выходами? - PullRequest
0 голосов
/ 10 июля 2019

Мне нужно создать каталог, который печатает разные продукты, которые либо весят в килограммах, либо имеют объем. В зависимости от этой единицы измерения мне нужно напечатать 3 разные версии почти одной и той же строки.

Теперь я должен использовать переопределение метода toString для печати каталога. Но у меня есть 2 проблемы. Я не могу сравнивать объекты в условных выражениях, а также не могу использовать ключевое слово return внутри цикла. Я застрял

Теперь у меня есть 2 подкласса для различных типов продуктов. Я попытался переопределить toString внутри этих подклассов, и он дал мне правильный вывод, но я должен создать toString внутри моего каталога Catalog и использовать его в моем main вместо этого. Это вообще возможно?

package ejercicio;
import java.util.*;

public class Catalogue {

    public Product producto; 
    public ArrayList <Product> catalogue; 

    public Catalogue() {
        catalogue = new ArrayList<Product>();
    }

    public void addProduct(Product producto) { 
        catalogue.add(producto);
        }


    // This is what's supposed to be a toString
    public void getCatalogue() {
        for(Product x : catalogue) {
            System.out.println(x.toString());
        }
    }

    public void sortList() { 
        Collections.sort(catalogue);
    }


    public void printExpensive(){
        System.out.println("Producto más caro: "+catalogue.get(0).getNombre());
    }

    public void printCheap(){
        System.out.println("Producto más barato: "+catalogue.get(catalogue.size()-1).getNombre());
    }

}

Я просто не могу определить toString, который меняет возвращаемое значение в зависимости от объекта, который он печатает, и в то же время печатает весь ArrayList.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...