java - Java中可以有变量属性名吗?如果没有,为什么?

标签 java

我想知道是否可以根据变量名称创建属性。要更具体,请参阅以下示例。

for(int i = 0; i < 10; i++){
    String number+i = i;
}

这意味着每个属性都将具有由其值 i 扩展的基本名称“number”。因此,我可以执行以下操作(假设这些将被存储和访问,并忽略属性/变量名称不应包含数字的事实,但您明白了):

System.out.println(number5); //You could do the same example with Strings and not numbers

显然第一部分无法编译,但我认为摘录清楚地说明了我要问的问题。有没有任何程序语言可以做到这一点?或者 Java 有什么技巧可以实现这一点吗?

但是不拥有它背后的原因是什么?显然,如果可能的话,属性可以存储两个变量值(属性的名称和值本身),这可能会导致困惑。但这是不拥有它的唯一原因还是还有其他原因?

最佳答案

您应该研究 Map(例如 HashMap 实现),这将允许您为属性拥有动态键。

Map<String, Object> newMap = new HashMap<>();
newMap.put("whatever", "Value 1");
for(int i = 0; i < 10; i++){
    newMap.put(number+i, i);
}

关于java - Java中可以有变量属性名吗?如果没有,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47760465/

相关文章:

javascript - 对具有 "A/B"格式的数字的数组进行排序?

java - 将序列化的 Java Double 转换为等效的 VC++ 类型

java - 查询中未明确命名结果集列

使用私钥进行 Java RSA 解密会出现 BadPaddingException

java - 为什么 setHeader 不在流程功能内工作而是在功能之外工作

java - 当子类方法存在时调用基类方法

java - OpenGL 和 OpenGLES 中的 glVertexAttribPointer

java - 使用 Java 发出 DNS 请求并计时响应

java - Tomcat 具有同一应用程序的多个实例

java - 如何使用 java Swing 在右侧组件上显示我的 jframe?