gpt4 book ai didi

java - 编译时类名未知时调用方法

转载 作者:行者123 更新时间:2023-12-01 16:39:13 25 4
gpt4 key购买 nike

我有许多子游戏,SubGame1、SubGame2 等。每个子游戏都派生自 SubGame 类并实现静态 String getDescription() 函数。

我想访问这些描述,例如SubGame1.getDescription()、SubGame2.getDescription() 等

但是我想使用代码循环,并且并非所有子游戏都会存在。

当我只知道游戏编号时,如何调用子游戏的 getDescription() 。像这样的东西:

String description = Class.forName(this.getPackageName()+".SubGame"+subGameNo.getDescription();

但是会返回: 类型 Class< capture#5-of ?>

的 getDescription() 方法未定义

有什么想法吗?

最佳答案

你可以调用它,但你必须通过java.lang.reflect来完成它类。 Class.forName 为您提供一个 Class 实例。然后您调用getMethod获取 Method,然后您可以调用 invoke .

从我的头顶上下来:

Class cls;
Method getDescription;
String description;

cls = Class.forName(this.getPackageName() + ".SubGame" + subGameNo);
getDescription = cls.getMethod("getDescription");
description = getDescription.invoke(null);

...但是您可能需要稍微调整一下参数。

关于java - 编译时类名未知时调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5862297/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com