我正在尝试从数组中打印项目,但是当我运行程序时,它会打印出Orders:testorder@4, testorder@5等。关于如何解决它的任何提示,它写为123 Buy?

package hej;


public class TestOrder {
public static void main(String[] args) {

    Order order1 = new Order("123", "Buy");
    Order order2 = new Order("456", "Sell");
    Order order3= new Order("231", "Buy");
    Order order4= new Order("987", "Buy");


    OrderRegister orderregister = new OrderRegister();


    orderregister.addOrder(order1);
    orderregister.addOrder(order2);
    orderregister.addOrder(order3);
    orderregister.addOrder(order4);


    System.out.println("Orders: ");
    for (int i = 0; i < orderregister.getArrayList().size(); i++){
        System.out.println(orderregister.getArrayList().get(i) + "-");

    }
}


}

最佳答案

因为您没有为toString()类定义的Order方法。

Java尝试打印对象时,它将尝试为该对象调用toString()方法,如果找不到它,则使用Object超类中的toString()

默认情况下,对象toString()执行此操作:

getClass().getName() + '@' + Integer.toHexString(hashCode())


这正是您所看到的输出。

10-08 15:16