2017-05-04 92 views
0

我现在用的防暴游戏AP i和利用然而其设置在控制台显示的示例代码:爪哇 - 防暴API

[email protected] 

我不那么肯定,我写了一个不同的代码,请求用户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); 
    } 
} 

不知道用它做什么意思或者什么,根据它应该显示最近我的游戏信息的API

+0

你得到了最近的游戏对象,现在你可以访问它的属性。例如; recentGames.getName();如果有名称属性。 –

+0

你真的认为在公共访问的网站上发布你的api密钥是个好主意吗? – baao

+0

我查看了一个可以调用getGames()的单一方法的文档,但是一旦我调用该方法,它只会引出更多类似的以前的控制台输出。我想要查看这些输出的详细信息 – Dani

回答

1

System.out.println(recentGames);

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

的getClass()的getName()+ '@' + Integer.toHexString(hashCode()方法)

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


编辑:

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

System.out是一个PrintStream对象。花一些时间看一下文档,具体到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,或类似的东西。
+0

我查看了一个可以称为getGames()的单一方法的文档,但是一旦我调用该方法,它只会引出更多类似的以前的控制台输出。我需要这些输出的访问细节 – Dani

+0

@Dani查看对我的答案的编辑 – avojak

+0

@Dani编辑是否有帮助?你还有问题吗? – avojak