Мне нужно создать каталог, который печатает разные продукты, которые либо весят в килограммах, либо имеют объем. В зависимости от этой единицы измерения мне нужно напечатать 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.