如何将字符串列表打印到控制台而不是地址



我已经上了一个课程并想致电getTicketScollection(),并将其显示在控制台下的输出。

我的问题是如何使其打印列表,而不打印地址(?)

这是完整的方法

public List<TicketInfo> getTicketsCollection() {

        Tickets Ticket = new Tickets();

          List<TicketInfo> tickets = Ticket.getTicketCollection();

          System.out.println("Company name: " + nextTicket.getCompanyName() + " Symbol: " + nextTicket.getCompanySymbol()

       }
          return tickets_today;    
}

并将其打印到控制台(类输出选项卡):

 [WSpackageWS.TicketInfo@177bea38, WSpackageWS.TicketInfo@7f132176, WSpackageWS.TicketInfo@6bca7e0d]

我的问题是如何使其打印列表( 服务器选项卡)到"类输出"选项卡(并且不打印地址(?)

很明显,您在服务器控制台选项卡中的输出低于输出,因为该代码是在服务器上执行的,并且您正在打印TicketInfo类的每个成员。

Info: 
Company name: Microsoft Symbol: Frog Currency: GBP Available tickets: 625 
Value per share: 500 DateOLU: 04/04/2017

这没有发生客户端代码,因为您试图在不覆盖toString的情况下打印对象。

所以,有几件事:

  1. 您需要显示getSharesCollection()方法的实现,该方法似乎正在返回List,但是直到您共享实现。

  2. 通过添加以下代码

    来覆盖toString ()方法
    public String toString ()
    {
        return "Company name: " + nextTicket.getCompanyName() + " Symbol: " + nextTicket.getCompanySymbol() + " Currency: " + nextTicket.getCurrency()
              + " Available shares: " + getAvailableShares() + " Value per share: " + getValuePerShare()
              + " DateOLU: " + getDateOLU();
    }
    

在使用System.out.println(getSharesCollection());的地方,您在List上调用toString()方法。

这就是为您提供[WSpackageWS.TicketInfo@177bea38, ...]输出的原因。@177bea38是默认的toString()实现(对于您的TicketInfo类)。

为了正确显示输出,您需要从TicketInfo类中提取所需的数据。

最好的方法是在TicketInfo中实现(和覆盖)ToString()方法。您可以在getTicketsCollection()方法中使用System.out.println的行进行此操作。

现在写入对象的哈希代码正在打印,因为system.out.println(object)调用了您要打印对象的类的toString()。默认情况下,调用了java.lang.Object类的toString()。为了改变它,覆盖了您要打印的对象的类的tostring()。希望它有帮助..

相关内容

  • 没有找到相关文章

最新更新