使用string值作为variables名称

是否有可能使用string作为variables名称..就像在这个例子中 –

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(); } 

你可以做的是将这些值关联(映射)到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(); } 

你不能用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 } 

不,这在Java中不受支持。

stillPlaying不作为String的方法(或variables)存在。

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

你可以用reflection来做各种愚蠢的诡计。 但是你基本上打破了课堂上的“保修无效,如果删除”贴纸。

不,但是你可能想用Map来代替。

我用了一个开关盒。

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