刚接触 Java,无法弄清楚我希望什么是简单的事情。
我将“部分”保存在数组中:
//Section.java
public static final String[] TOP = {
"Top News",
"http://www.mysite.com/RSS/myfeed.csp",
"top"
};
我想做这样的事情:
Article a1 = new Article();
a1.["s_" + section[2]] = 1; //should resolve to a1.s_top = 1;
但它不会让我这么做,因为它不知道“节”是什么。 (我确信经验丰富的 Java 人员会对这种尝试感到畏缩......但我的搜索结果却没有找到如何做到这一点)
澄清:
我的文章 mysqlite 表具有文章“部分”的字段:
s_top
s_sports
...etc
从 XML 文件进行导入时,我希望将该字段设置为 1
(如果该字段属于该类别)。我可以有 switch 语句:
//whatever the Java version of this is
switch(section[2]) {
case "top": a1.s_top = 1; break;
case "sports": a1.s_sports = 1; break;
//...
}
但我认为将其写成一行会容易得多:
a1["s_"+section[2]] = 1;
最佳答案
在 Java 中,按照你想要的方式做你想做的事情是一件很痛苦的事情。
如果您不想使用 switch/case 语句,您可以使用反射来提取您要设置的成员属性:
Class articleClass = a1.getClass();
Field field = articleClass.getField("s_top");
field.set(a1, 1);
它会起作用,但可能会很慢,而且这是解决此问题的非典型方法。
或者,您可以存储 Map<String>
或Map<String,Boolean>
在你的Article
里面类,并且在Article
内有一个公共(public)函数叫putSection(String section)
,并且在迭代时,您可以将各个部分字符串(或字符串/值映射)放入每个 Article
的映射中。因此,不要静态定义哪些部分可能存在并给出每个 Article
是或否,您可以允许可能的部分列表是动态的并基于您的 xml 导入。
关于java - 如何在Java中使用数组值作为字段? a1.section[2] = 1;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11350299/