是否可以使用字符串作为属性名称来设置对象的属性?我很新的Java,但在JavaScript我只想做这样的事情:
使用字符串设置属性
Object[propertyNameAsString] = value
周围搜索后,我发现如何使用字符串得到财产,但不知道如何设置一个。我也遇到过一个叫做Properties对象的东西,那是我需要使用的东西吗?
基本上我只想循环遍历一个填充了图像名称的数组,然后将它们各自的属性设置到我将用于存储实际图像的对象上。这可能在Java中,或者我应该以另一种方式做到吗?
编辑:
这是我的数组是什么样子:
static String pngs[] = {"staminaBox", "staminaBoxR", "healthBox", "healthBoxR", "moveBox", "goButton"};
理想我想通过他们循环,并添加属性的资产类,像这样:
for (int i = 0; i < pngs.length; i++) {
Assets.pngs[i] = createImageFromUrl(pngs[i] + ".png");
}
但现在我意识到这是行不通的,因为在我的资产类中,我必须事先定义如下属性:
public static Image staminaBox;
而且我整点想做到这一点的第一个地方是让我没有写出来的声明我想补充的每一个形象。我习惯了JavaScript的松散特性,但这是否意味着无法绕过这些显式的属性声明? HashMap会让我做到这一点吗?
你应该使用一个地图,其中关键的是图像的名字和值是你的图像对象。 – NeplatnyUdaj
向我们展示你的数组是如何声明的,以及数组元素的类。对象通过方法访问。 –
如果我理解正确,您想要将包含图像名称的字符串数组转换为Image实例数组(图像是由createImageFromUrl()返回的对象类型,您未显示该图像)。没问题,但你显然需要两个数组:一个字符串数组不能包含Image的实例。不要试图在Java中应用JS习语。他们是完全不同的语言。 Java是关于字符串类型,类,封装(没有公共字段),多态。 JS是关于松散类型的动态数据结构。 –