使用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; }