Java-API

Java-API,java,api,riot,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.rithm

我正在使用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);
    }
}
不确定这意味着什么或如何使用它,根据API,它应该显示关于我最近的游戏的信息

System.out.println(recentGames)

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

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

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


编辑:

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

是一个物体。花些时间查看文档,特别是
print(…)
println(…)
方法

例如,如果传入的内容是
int
,则调用
print(int)
println(int)
方法。如果传入
字符串
,则调用的是
print(String)
println(String)
方法。如果传入原语,则调用相应的方法。如果传入任何其他
对象
,则实际上是这样做的:

Object myObject;
String myObjectAsAString = myObject.toString(); // See above for what this evaluates to
                                                // if the class doesn't override toString()
System.out.println(myObjectAsAString);
如果您确实想打印出有意义的信息,您有两个选项:

  • 继续对对象调用方法,直到您有希望找到一个类,该类的方法返回一个
    字符串或可以打印出来的原语,或重写
    toString()
  • 编写一些逻辑来解释所调用方法的结果。例如,代替
    System.out.println(recentGames.getGames())
    ,您可以检查是否
    recentGames.getGames()

  • 您获得了recentGames对象,现在可以访问它的属性。例如recentGames.getName();如果有name属性。你真的认为在一个公共可访问的站点上发布api密钥是一个好主意吗?我查看了一些文档,其中有一个方法可以称为getGames(),但一旦我调用该方法,它只会显示以前更类似的控制台输出。我想要访问这些输出的详细信息我查看了有一个方法的文档,该方法可以被称为getGames(),但一旦我调用该方法,它只会显示更相似的先前控制台输出。我想要这些的详细资料outputs@Dani编辑有帮助吗?你还有问题吗?