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

在foreach循环中使用字符串引用java对象,java,Java,是否有某种方法可以使用for循环中字符串的实际值引用对象 我将尝试解释我对java非常陌生!: for(String provider:response.gO.providers) { System.out.println(response.gO.identities.{provider}.nickName); } 在这里,我希望列表中的每个provider值替换{provider},以便它打印每个昵称的值 基本上,我有一个巨大的提供者列表,目前我知道如何做到这一点的唯一方法是对提供者的

是否有某种方法可以使用for循环中字符串的实际值引用对象

我将尝试解释我对java非常陌生!:

for(String provider:response.gO.providers)

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

}
在这里,我希望列表中的每个provider值替换{provider},以便它打印每个昵称的值

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

forString提供程序: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不,一般来说,您不能在Java中执行此操作。 Java语法不允许这样做

在Java中,在这个元素中 response.gO.identifies.{provider}.昵称 {provider}部分需要在编译时知道

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

2不过你可以通过反射来做到这一点


您应该使用HashMap。您至少需要编写一个获取字符串并返回正确提供程序的getter。如上所述,HashMap允许您将提供程序名称用作键,将存储项用作提供程序对象。