当前位置: 首页 > 知识库问答 >
问题:

在Java中用动态名称赋值变量

糜正业
2023-03-14
int n1,n2,n3;

for(int i=1;i<4;i++)
{
    n<i> = 5;
}

共有1个答案

松翔
2023-03-14

这不是你在Java中做事情的方式。Java中没有动态变量。Java变量必须在源代码中声明1

根据您试图实现的目标,您应该使用数组、列表映射;例如。

int n[] = new int[3];
for (int i = 0; i < 3; i++) {
    n[i] = 5;
}

List<Integer> n = new ArrayList<Integer>();
for (int i = 1; i < 4; i++) {
    n.add(5);
}

Map<String, Integer> n = new HashMap<String, Integer>();
for (int i = 1; i < 4; i++) {
    n.put("n" + i, 5);
}

可以使用反射动态引用源代码中已经声明的变量。但是,这只对作为类成员的变量(即静态和实例字段)起作用。它对局部变量不起作用。参见@fyr的“快而脏”例子。

 类似资料:
  • 问题内容: 在PHP中,您可以执行以下令人惊奇/可怕的事情: 有没有办法用Java做类似的事情? 例如,如果我有一个名称,可以得到对变量的引用吗? 问题答案: 由于ECMA-/ JavaScript是所有关于和(其也somekind的对象的),每个变量被存储在这样的被称为 可变 (或在功能方面,的情况下, 激活对象 )。 因此,如果您创建这样的变量: 在 全局范围 (= NO函数上下文)中,您将这

  • 问题内容: 如何在Java中使用动态名称分配变量?例如: 问题答案: 这不是你在Java中做事的方式。Java中没有动态变量。Java变量必须在源代码中声明。 根据要实现的目标,应使用数组、List或 Map;例如 可以使用反射来动态引用源代码中已声明的变量。但是,这仅适用于属于类成员的变量(即静态字段和实例字段)。它不适用于局部变量。

  • 问题内容: 我想使用运行时之前不知道的字段名称过滤器来调用查询…不确定如何构造变量名称…或者我很累。 如果funct()返回的名称等于 不知道该怎么做… 问题答案: 您可以创建字典,设置参数,然后通过解压缩字典作为关键字参数将其传递给函数:

  • 问题内容: 我知道,Java没有预处理器,因此Java中有些东西或多或少是不可能的。 真的 没有 办法在循环中用动态名称填充这些数组吗?我想要类似的东西: 代替 还是有可以使用的古怪技巧? 问题答案: 我会那样做: 如果要使用该方法:

  • 我想使用<code>dplyr::mutate()</code>在数据帧中创建多个新列。应动态生成列名及其内容。 来自iris的示例数据: 我创建了一个函数,可以从<code>Petal中修改我的新列。宽度变量: 现在我创建一个循环来构建我的列: 然而,由于mutate认为varname是一个文字变量名,因此循环只创建一个新变量(称为varname),而不是四个(称为petal.2-petal.5

  • 我的问题很简单,但我认为Velocity不支持这一点。我必须使用vm文件中定义的变量名访问映射或对象。 配置为Map 这里的问题是,当我发送此模板进行渲染时,我得到以下代码: 所以看起来在呈现模板时,$img_src、$img_link和$img_alt没有正确定义,velocity试图在自身上呈现config对象,在下一轮呈现时,config对象已经呈现为纯文本,其余变量就放在其中。 比这更奇怪