【问题标题】:How to include an integer into another variable's name [duplicate]如何将整数包含到另一个变量的名称中[重复]
【发布时间】:2012-12-16 02:39:19
【问题描述】:

可能重复:
Dynamic variable names Java

如果我有

int i =5;

如何创建一个新变量,它的名称中会包含前一个整数的值?

示例:

String string**i**;

so that, in the ent, my String variable will be named 

string**5**

【问题讨论】:

  • 你没有。你为什么想要?为什么不使用数组或映射?
  • Dynamic variable names Java 的可能副本。或stackoverflow.com/questions/6729605/…。或许多其他人。
  • 是的。此处正确的解决方案是“使用数组”,而不是“将其写入 Java”,这是不可能的。
  • int i =5; String string*+(Integer)i.ToString()+* = "";
  • @TejaswiRana:我们谈论的是同一种语言吗?您在 Java 中无法做到这一点。

标签: java string naming-conventions


【解决方案1】:

你没有。你使用一个数组:

String[] strings = new string[10];
strings[5] = "foo";

【讨论】:

    【解决方案2】:

    简单的答案是您不能/不应该尝试在 Java 中做这种事情。 Java 变量名必须在编译时知道。期间。


    在这种特殊情况下,无论如何这似乎都是毫无意义的练习。考虑一下:

    String buildstring_<buildNumber> = ...
    

    你打算如何使用这个假设变量?

    if (buildstring_<buildNumber>.equals(...)) {
        ....
    }
    

    但你也可以这样实现:

    String buildstring_current = ...
    
    if (buildstring_current.equals(...)) {
        ....
    }
    

    好的,假设有很多这样的构建字符串...

    String buildstring_1 = ...
    String buildstring_2 = ...
    String buildstring_3 = ...
    
    if (buildstring_<buildNumber>.equals(...)) {
        ....
    }
    

    很好......但是当&lt;buildNumber&gt; 比最后一个buildstring_? 声明大一时会发生什么?编译错误或运行时错误!!!

    没有。在 Java 中执行此操作的明智方法是使用数组或 Map ... 或可能从属性文件中读取的内容。

    【讨论】:

      猜你喜欢
      • 2022-01-12
      • 1970-01-01
      • 1970-01-01
      • 2021-05-20
      • 1970-01-01
      • 1970-01-01
      • 2012-03-21
      • 1970-01-01
      • 2015-12-16
      相关资源
      最近更新 更多