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

时间:2017-12-12 16:21:24

标签: java xml list web-services soap

我创建了一个类,想要调用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]

3 个答案:

答案 0 :(得分:0)

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

这就是为您提供[WSpackageWS.TicketInfo@177bea38, ...]输出的原因。 @177bea38是一个哈希码,它是默认的toString()实现(针对您的TicketInfo类)。

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

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

  

我的问题是如何让它打印清单(中的内容)   服务器选项卡)到类输出选项卡(而不是打印地址(?)

很明显,您在服务器控制台选项卡中得到的输出低于此值,因为该代码在服务器上执行,并且您正在打印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();
    }