标题可能有点令人困惑,但我想知道的是我怎样才能改变 mainsave.b中的'b'部分,以便在对象中定义它。
到目前为止,这是我的代码
public void getItem(int a, String b)
{
mainsave.b = a;
}
这些值正在另一个名为Story的类中从这段代码发送。 我希望它们存储在类SaveFile的对象中,这就是'mainsave'是
if (command_string.equals("1"))
{
try {Thread.sleep(1500);} catch (InterruptedException e) {}
System.out.println("You search the shed thouroughly and find an axe but not much else...");
int item = 1;
String axe = "axe";
getItem(item,axe);
try {Thread.sleep(1500);} catch (InterruptedException e) {}
area1();
}
尝试编译第一部分时得到的错误是“找不到符号 - 变量b”
答案 0 :(得分:1)
因为Java是一种静态类型语言,所以不能。因此变量名必须在编译时实现。
我不建议使用反射编码。
答案 1 :(得分:0)
通常您为每个字段定义getter和setter。
虽然不推荐,但你可以通过反思实现这一点。
Object a = new A();
Class<?> c = a.getClass();
Field fieldValue = c.getDeclaredField("value");
fieldValue.setInt(a, 10);
答案 2 :(得分:0)
这不起作用,因为Java是Statically-Typed Language,不像 JavaScript 或 Lua 。
我建议您使用某种List
来实际存储数据,而不是SaveFile
类中的大量字段。