使用字符串值作为变量名称

时间:2014-01-07 14:45:33

标签: java

是否可以使用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();
}

5 个答案:

答案 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不支持。

stillPlayingString上不作为方法(或变量)存在。

如下面的评论所示,通过一些反思可能是可行的,但引用另一个comment ......

  

你可以用反射做各种愚蠢的技巧。但你是   基本上打破了班级上的“保修无效,如果删除”标签   你做的那一刻。

答案 3 :(得分:1)

没有。但您可能希望改为使用Map。

答案 4 :(得分:-3)

我使用了一个开关盒。

Switch (string)
{
    case "string1":
    string1();
    break;
    case "string2":
    string2();
    break;
}