gpt4 book ai didi

java - 在 java (Android) 中获取字符串形式的字段值

转载 作者:行者123 更新时间:2023-12-01 15:44:40 26 4
gpt4 key购买 nike

请参阅下面的代码...

public static final int s1 = R.raw.s_1slow1;
public static final int s2 = R.raw.s_2fast6;
public static final int s3 = R.raw.s_3slow4;

String trackName = "s" + selectedTrack; //selectedTrack is an integer(1-3)
mPlayer = MediaPlayer.create(getApplicationContext(),
this.getClass().getField(trackName).getName()); //failed attempt

有没有办法根据字符串获取资源 ID?
例如,我需要“R.raw.s_1slow1”的值。

最佳答案

为什么不使用 map ?

public static final Map<Integer, Integer> m;
static {
m = new HashMap<Integer, Integer>(3);
m.put(1, R.raw.s_1slow1);
m.put(2, R.raw.s_2fast6);
m.put(3, R.raw.s_3slow4);
}
m.get(selectedTrack);

像这样使用反射是一个非常糟糕的主意。

如果你想通过反射来做到这一点,这就是你可以做的,但我强烈建议不要这样做:

Field field = this.getClass().getField("s1");
int s1val = field.getInt(this);
System.out.println(s1val);

关于java - 在 java (Android) 中获取字符串形式的字段值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7311691/

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