gpt4 book ai didi

java - 在 Java 中从字符串中提取变量名

转载 作者:太空宇宙 更新时间:2023-11-04 13:14:48 24 4
gpt4 key购买 nike

所以我正在为 Android 编写一个相当粗糙的 RPG 游戏。这比其他任何事情都更考验我的技能。我正在研究玩家类别,我有这样的统计数据:

int health = 3;
int strength = 3;
int knowledge = 3;
int resolve = 3;
int empathy = 3;
int xp = 0;
int statpoints = 0;
int level = 1;
int cap = 2 * level;
int capCounter = 0;
int TotalHealth = 2 * health + level;

在代码的后面,我有一个方法旨在获取统计数据的名称,并尝试在可以的情况下增加它

   private void updateStat(String stat) {
if (capCounter < cap) {
if (statpoints >= 2 * cap * level) {



capCounter++;

if (capCounter <= cap) {
statpoints = 0;
}
}
else {
System.out.print("You don't have enough points");
}
}
else {
System.out.print("Yout must level up first");
}

}

那个大空白代表一个代码区域,我想在其中解析字符串“stat”并从中提取我要更新的统计数据的名称,然后将该统计数据更新为 1。有没有办法做到这一点?

哦,System.out.print 调用当前用于测试目的。一旦我弄清楚如何在 Android Studio 的更新版本中使用 Toast,它们就会被 Toast 取代。我以前调用 makeText 的方式一直出错。

最佳答案

最简单的解决方案是使用 apache BeanUtils library ,以及 PropertyUtils类。

您需要的代码是

PropertyUtils.setSimpleProperty(yourPlayer, "yourField", "yourValue");

最长的答案是使用 de reflec API,它允许您操作对象,例如读/写属性、注释等等:Javadoc Here enter link description here

另一个信息,您制作的 Android 应用程序,出于性能原因,不鼓励使用反射 api。也许对您来说最好的解决方案是拥有一个包含所有不同统计数据的 map

Map<String, Integer> statsValue = new HashMap<>();
statsValue.put("health", 3);
statsValue.get("health");

关于java - 在 Java 中从字符串中提取变量名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33639966/

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