所以我有一个名为Test的课程:
public class Test{
protected String name = "boy";
protected String mainAttack = "one";
protected String secAttack = "two";
protected String mainType"three";
protected String typeSpeak = "no spoken word in super class";
//Somehow put all the class variables in an Array of some sort
String[] allStrings = ??(all class' strings);
//(and if you feel challenged, put in ArrayList without type declared.
//So I could put in, not only Strings, but also ints etc.)
public void Tester(){
//Somehow loop through array(list) and print values (for-loop?)
}
}
如您所见,我想自动将所有类变量放在Array或ArrayList(或类似的东西)中。 接下来我希望能够遍历数组并打印/获取值。 最好使用增强型for循环。
答案 0 :(得分:0)
如果你真的需要这样做,你需要使用反射。
然而,更好的方法是将值存储在Map(可能是HashMap)中,然后您可以轻松地从中查询/设置/等等。
答案 1 :(得分:0)
您可以使用Map
或Hashmap
来存储变量及其值,而不是Array
或Arraylist
HashMap是一个将“键/值”存储为一对的对象。在本文中,我们将向您展示如何创建HashMap实例并迭代HashMap数据。
答案 2 :(得分:0)
为什么不使用HashMap
作为值并迭代它?
答案 3 :(得分:0)
这样做。
String threeEleves = "sky";
String sevenDwarves = "stone";
String nineMortal = "die";
String oneRing[] = new String[] // <<< This
{
threeElves,
sevenDwarves,
nineMortal
}
或者这样做
// in some class.
public void process(final String... varArgs)
{
for (String current : varArgs)
{
}
}
String one = "noodles";
String two = "get";
String three = "in";
String four = "my";
String five = "belly";
process (one, two, three, four, five);
答案 4 :(得分:0)
正如其他人所说,不要这样做。但这是如何:
Class<?> cl = this.getClass();
List<Object> allObjects = new ArrayList<Object>();
for (java.lang.reflect.Field f: cl.getDeclaredFields())
{
f.setAccessible(true);
try
{
Object o = f.get(this);
allObjects.add(o);
}
catch (Exception e)
{
...
}
}
for (Object o: allObjects)
System.out.println(o);