是否可以使用String作为变量名称..就像在这个例子中一样 -
String musicPlaying = "music2";
Music music1 = new Music("blaalla");
Music music2 = new Music("blalala");
Music music3 = new Music("balaada");
if(!musicPlaying.stillPlaying) { // As you can see i am using string as a variable name.
changeMusic();
}
答案 0 :(得分:13)
您可以做的是将这些值关联(映射)到Music对象。这是一个例子:
Map<String, Music> musics = new HashMap<>();
String musicPlaying = "music2";
musics.put("music1", new Music("blaalla"));
musics.put("music2", new Music("blalala"));
musics.put("music3", new Music("balaada"));
if(!musics.get(musicPlaying).stillPlaying) { // As you can see i am using string as a variable name.
changeMusic();
}
答案 1 :(得分:5)
您无法在Java中执行此操作,但您几乎可以使用地图执行此操作。
Map<String, Music> map = new HashMap<String, Music>();
map.put("music1", music1);
map.put("music2", music2);
map.put("music3", music3);
if(map.get(musicPlaying).stillPlaying) {
// happy listening
}
答案 2 :(得分:3)
不,Java不支持。
stillPlaying
在String
上不作为方法(或变量)存在。
如下面的评论所示,通过一些反思可能是可行的,但引用另一个comment ......
你可以用反射做各种愚蠢的技巧。但你是 基本上打破了班级上的“保修无效,如果删除”标签 你做的那一刻。
答案 3 :(得分:1)
没有。但您可能希望改为使用Map。
答案 4 :(得分:-3)
我使用了一个开关盒。
Switch (string)
{
case "string1":
string1();
break;
case "string2":
string2();
break;
}