首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态命名SQL字段

动态命名SQL字段
EN

Stack Overflow用户
提问于 2017-06-10 04:07:01
回答 2查看 42关注 0票数 0

因此,我有一个机器人,作为一个角色扮演经理处理战斗,技能点和类似的,我试图让我的代码更通用一点,这样我可以有更少的页面,因为他们都做同样的事情,他们只是有不同的初始化器,但我遇到了一个障碍,我需要检查用户是否在特定的统计强度,感知,敏捷性等最低限度

所以我打电话给

代码语言:javascript
复制
mainSPECIAL = rows[0].Strength;

这就是问题所在,无论是力量,感知,智力,运气,我总是检查Rows.that属性,也就是Rows.Luck的幸运福利,我已经在我的初始化程序中设置了

代码语言:javascript
复制
var PERKSPECIALName = "Strength";

但我不能打给你

mainSPECIAL = rows.PERKSPECIALName,但是应该有办法做到这一点,对吧?因此,当它看到"rows.PERKSPECIALName“时,它会查找"PERKSPECIALName”,然后获取rows.Strength的值

EN

回答 2

Stack Overflow用户

发布于 2017-06-10 04:13:43

为此,您需要使用反射:

代码语言:javascript
复制
Field f1 = rows[0].getClass().getField(PERKSPECIALName);

Integer attribute = (Integer) f1.get(rows[0]);

其中"Integer“是从对象中拉出的元素的类型(强度类型)

字段必须声明为public!我认为有一种方法可以在它们不公开的时候获得它们,但它需要更多的代码。

票数 0
EN

Stack Overflow用户

发布于 2017-06-23 15:41:39

看起来你有一组需要用常量标识符来标识的整数。您可能会发现EnumMap很有用。看看How to use enumMap in java吧。

或者,如果您只想使用一个字符串来标识您想要引用的额外福利,只需使用Map即可。

Java不像其他语言那样具有引用到成员的功能,所以如果您不想更改数据结构,您可以考虑使用lambda函数或更重的语言特性来提高重用性,这对于您正在尝试做的事情来说似乎有点过头了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44465941

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档