在foreach循环中使用字符串引用java对象

时间:2014-09-17 16:38:01

标签: java

我是否可以使用实际的"值"来引用对象?来自for循环中的字符串?

我会尝试解释(我是java的新手!):

for(String provider:response.gO.providers)

{ System.out.println(response.gO.identities.{provider}.nickName); 

}

在这里,我希望列表中的提供程序的每个值都替换{provider},以便打印每个昵称的值。

基本上我有一个巨大的提供者列表,我目前知道如何做到这一点的唯一方法是为提供者的每个值使用大量的if语句:

  

for(String provider:response.gO.providers){

 if ("providerx".equalsIgnoreCase(provider))
     System.out.println(response.gO.identities.providerx.nickName);

 if ("providery".equalsIgnoreCase(provider))
     System.out.println(response.gO.identities.providery.nickName);   }

等。

谢谢!

1 个答案:

答案 0 :(得分:0)

1)不,通常你不能用Java做到这一点 Java语法不允许它。

在Java中,在这个元素中 response.gO.identities.{provider}.nickName
{provider}部分需要在编译时知道。

你想要的是延迟了解它直到运行时间 所以这是不可能的。

2)你可以用反射来做到这一点。

Java Reflection