昏黄烛火轻摇晃 2017-07-18 13:33 采纳率: 61.5%
浏览 3622
已采纳

JAVA在代码中已经覆写了toString方法 为什么输出还是对象的地址

package com.xyh.Demo;

import java.util.Arrays;
import java.util.Comparator;

class BC implements Comparator{

@Override
public int compare(Book o1, Book o2) {
    // TODO Auto-generated method stub
    if(o1.getDate()<o2.getDate()){
        return -1;
    }else if(o1.getDate()>o2.getDate()){
        return 1;
    }
    return 0;
}

}
class Book {
private int date;
private String author;

/**
 * @param date
 * @param author
 */
public Book(int date, String author) {
    super();
    this.date = date;
    this.author = author;
}

public int getDate() {
    return date;
}

public void setDate(int date) {
    this.date = date;
}

public String getAuthor() {
    return author;
}

public void setAuthor(String author) {
    this.author = author;
}

@Override
public String toString() {
    return "Book [date=" + date + ", author=" + author + "]";
}

}

public class Test {

public static void main(String[] args) {
    // TODO Auto-generated method stub
     Book []book={
             new Book(100,"XX"),
             new Book(90,"YY")
             };

     Arrays.sort(book,new BC());
     System.out.println(book);
}

}

  • 写回答

6条回答 默认 最新

  • threenewbee 2017-07-18 16:10
    关注

    你重写的是对象的toString
    你输出的是数组,调用的是数组的toString,当然没用。因为你不能重写数组的toString,所以你需要手工循环下
    System.out.println(book);
    ->
    for (Book b : book) System.out.println(b);

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥15 MATLAB yalmip gurobi求解器
  • ¥15 关于#stm32#的问题:第一张图是发送数据代码,第二第三张图是接收数据并进行DAC转换的函数,若用串口一接收数据并进行DAC转换,主函数代码该怎么写
  • ¥20 hc130怎么读写内部flash存储信息
  • ¥15 Axure rp9注册与登录交互
  • ¥15 我下载图形界面重启完就变成这样了,打字也打不了,动也动不了,该怎么解决(操作系统-centos)
  • ¥15 VBA中在窗体中遍历所有checkbox控件,提取出被选中的checkbox的caption值
  • ¥15 在Ubuntu上有什么命令,或者是系统文件能告诉我链接nvme ssd的pcie槽位是不是支持热插拔功能?
  • ¥15 ansys license许可证问题
  • ¥20 QQ号和密码都能正常登录微信 QQ号和密码登录微信显示密码错误
  • ¥15 单片机RTOS Kernel与应用分离开发,Kernel如何调起应用?