Java - Riot API

时间:2017-05-04 20:17:44

标签: java api riot

我正在使用RIOT Games APi并使用提供的示例代码,但控制台显示:

net.rithms.riot.dto.Game.RecentGames@35d176f7

我不太确定,我写了一个不同的代码,请求用户ID完全正常。

import net.rithms.riot.constant.Region;
import net.rithms.riot.constant.Season;
import net.rithms.riot.api.RiotApi;
import net.rithms.riot.api.RiotApiException;
import net.rithms.riot.dto.Game.RecentGames;

public class Example {

public static void main(String[] args) throws RiotApiException {

        RiotApi api = new RiotApi("KEY", Region.EUW);
        api.setSeason(Season.CURRENT);

        RecentGames recentGames = api.getRecentGames(api.getSummonerByName("Vodkamir Putkin").getId());

        System.out.println(recentGames);
    }
}

不确定这意味着什么或者如何处理它,根据它应该显示有关我最近的游戏的信息

1 个答案:

答案 0 :(得分:1)

System.out.println(recentGames);

这将隐式调用recentGames对象上的toString()方法。除非RecentGames类重写toString()方法,否则根据上面链接的文档,它将有效地打印:

  

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

我不熟悉RIOT API,但如果您想获得更具体的信息,最好的办法是查看您可以在RecentGames对象上调用的其他方法。< / p>

编辑:

只要您继续调用返回不会覆盖toString()的对象的方法,您就会遇到同样的问题。

System.outPrintStream个对象。花些时间查看文档,特别是print(...)println(...)方法。

例如,如果您传递了int的内容,则需要调用print(int)println(int)方法。如果您传递String,则需要调用print(String)println(String)方法。如果传入基元,则调用相应的方法。如果你传入任何其他Object,你实际上是这样做的:

Object myObject;
String myObjectAsAString = myObject.toString(); // See above for what this evaluates to
                                                // if the class doesn't override toString()
System.out.println(myObjectAsAString);

如果您真的想要打印出有意义的信息,您有两种选择:

  1. 保持调用对象的方法,直到你希望到达一个类,该类具有返回String或可以打印出来的原语的方法,或者覆盖toString()
  2. 写一些逻辑来解释您调用的方法的结果。例如,您可以检查是System.out.println(recentGames.getGames());还是打印recentGames.getGames().isEmpty(),而不是No recent games,而不是ctrl + B