首页 > 解决方案 > 需要更新java中的toString方法

问题描述

结果,下面的代码应该打印名称,但是相反,我得到了以下结果 com.flight.Passenger@659e0bfdAs并且根据我的理解, toString 方法应该被覆盖,如果我错了,如果我是对的,请纠正我请帮我在这里覆盖 toString 方法。

非常感谢您的及时回复,但我仍然有以下问题:

因为我得到了成功的结果,但是有什么方法可以打印出 Bob、Reeta 等参考变量的名称?

package com.flight;

import java.util.Arrays;

public class Passenger implements Comparable  {

    private int memberLevel; 
    private int memberDays;
    public void setLevel(int memberLevel, int memberDays)
    {
        this.memberLevel = memberLevel;
        this.memberDays = memberDays;
    }

    public int compareTo(Object o)
    {
        Passenger p = (Passenger) o;

        if(memberLevel> p.memberLevel)
            return -1; //negative comes first
        else if(memberLevel< p.memberLevel)
            return 1; // positive comes afterwards
        else {
            if(memberDays> p.memberDays)
                return -1;
            else if(memberDays< p.memberDays)
                return 1;
            else
                return 0;
        }

    }

    public static void main (String[] args)
    {

        Passenger Bob = new Passenger();
        Passenger Reeta = new Passenger();
        Passenger Mannat = new Passenger();
        Passenger Asses = new Passenger();

        Bob.setLevel(1,40);
        Reeta.setLevel(1,55);
        Mannat.setLevel(2,50);
        Asses.setLevel(1,95);

        Passenger[] pa = {Bob,Reeta,Mannat, Asses};
        //Arrays.sort(pa);
        for(Passenger pb : pa)
        System.out.println(pb);

    }


}

标签: javatostring

解决方案


@Override
    public String toString() {
        return this. memberLevel + " " + this. memberDays;
    }

推荐阅读