Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中从字符串值调用/使用变量?_Java_Variables - Fatal编程技术网

在Java中从字符串值调用/使用变量?

在Java中从字符串值调用/使用变量?,java,variables,Java,Variables,所以我有一系列名为card1到card20的jbutton。我想根据是否满足特定条件来更改图标,因此我想做一个循环,并将每个图标称为(“card”+I)或类似的东西,而不是为每个按钮编写单独的if语句。我正在使用的代码已经添加到下面,但是有没有一种方法可以循环这个if语句,这样代码的每个循环都会影响不同的卡 private void cardreset() { if (cardmatch[1] == 0) { card1.setIcon(back); } } 这

所以我有一系列名为card1到card20的jbutton。我想根据是否满足特定条件来更改图标,因此我想做一个循环,并将每个图标称为(“card”+I)或类似的东西,而不是为每个按钮编写单独的if语句。我正在使用的代码已经添加到下面,但是有没有一种方法可以循环这个if语句,这样代码的每个循环都会影响不同的卡

private void cardreset() {
    if (cardmatch[1] == 0) {
        card1.setIcon(back);
    }
}
这就是我想做的,但是预先将所有“card”变量添加到数组中会产生非法的前向引用错误

private void cardreset() {
    for(int i=1; i<=20; i++){
        if (cardmatch[i] == 0) {
            card[i].setIcon(back);
        }
    }
}    
private void cardreset(){

对于(inti=1;i理论上你可以用它来做,但这是一个非常糟糕的做法

相反,你应该使用a和你的地图来引用它们

只是为了好玩,这里介绍了如何进行反思,但我还是强烈建议不要这样做

for (int i = 0; i < 4; i ++) { 
    Field f = MyClass.class.getDeclaredField("card" + i);
    System.out.println(f.get(myClass));
}
for(inti=0;i<4;i++){
字段f=MyClass.class.getDeclaredField(“卡片”+i);
System.out.println(f.get(myClass));
}

理论上你可以用它来做,但这是一个非常糟糕的做法

相反,你应该使用a和你的地图来引用它们

只是为了好玩,这里介绍了如何进行反思,但我还是强烈建议不要这样做

for (int i = 0; i < 4; i ++) { 
    Field f = MyClass.class.getDeclaredField("card" + i);
    System.out.println(f.get(myClass));
}
for(inti=0;i<4;i++){
字段f=MyClass.class.getDeclaredField(“卡片”+i);
System.out.println(f.get(myClass));
}

理论上你可以用它来做,但这是一个非常糟糕的做法

相反,你应该使用a和你的地图来引用它们

只是为了好玩,这里介绍了如何进行反思,但我还是强烈建议不要这样做

for (int i = 0; i < 4; i ++) { 
    Field f = MyClass.class.getDeclaredField("card" + i);
    System.out.println(f.get(myClass));
}
for(inti=0;i<4;i++){
字段f=MyClass.class.getDeclaredField(“卡片”+i);
System.out.println(f.get(myClass));
}

理论上你可以用它来做,但这是一个非常糟糕的做法

相反,你应该使用a和你的地图来引用它们

只是为了好玩,这里介绍了如何进行反思,但我还是强烈建议不要这样做

for (int i = 0; i < 4; i ++) { 
    Field f = MyClass.class.getDeclaredField("card" + i);
    System.out.println(f.get(myClass));
}
for(inti=0;i<4;i++){
字段f=MyClass.class.getDeclaredField(“卡片”+i);
System.out.println(f.get(myClass));
}

您可以将它们放在一个数组中,并以这种方式修改它们

JButton cards[] = { card1, card2, ..., card20 };
然后,当您要修改所有图标时:

if (condition) {

  for (JButton card : cards)
    card.setIcon(...);

}
或修改特定图标(如每隔一个):

for(int i=0;i
您可以将它们放在一个数组中,并以这种方式修改它们

JButton cards[] = { card1, card2, ..., card20 };
然后,当您要修改所有图标时:

if (condition) {

  for (JButton card : cards)
    card.setIcon(...);

}
或修改特定图标(如每隔一个):

for(int i=0;i
您可以将它们放在一个数组中,并以这种方式修改它们

JButton cards[] = { card1, card2, ..., card20 };
然后,当您要修改所有图标时:

if (condition) {

  for (JButton card : cards)
    card.setIcon(...);

}
或修改特定图标(如每隔一个):

for(int i=0;i
您可以将它们放在一个数组中,并以这种方式修改它们

JButton cards[] = { card1, card2, ..., card20 };
然后,当您要修改所有图标时:

if (condition) {

  for (JButton card : cards)
    card.setIcon(...);

}
或修改特定图标(如每隔一个):

for(int i=0;i
您的要求不太清楚。而且您也没有提供任何代码来帮助。如果做出其他假设,您甚至可以依赖容器中JButton控件的顺序(该控件将像数组一样),而不是创建单独的数组。但这是同一个想法:使用“动态变量名”。你所说的
非法正向引用
错误是什么意思?显示足够的代码来重现问题。你问的问题并不清楚。你也没有给出代码来帮助。你可能会重复,甚至可以依赖于容器中JButton控件的顺序(这将像一个数组一样),而不是创建一个单独的数组。但它的思想是一样的:使用数组来处理“动态变量名”“。你所说的
非法转发引用
错误是什么意思?显示足够的代码来重现问题。你的要求不是很清楚。而且你也没有给出代码来帮助。可能的重复甚至可以依赖于容器中JButton控件的顺序(这将像一个数组一样),而不是创建一个单独的数组。但这是相同的想法:使用。你所说的
非法转发引用是什么意思?
错误?显示足够的代码来重现问题。你的要求不太清楚。而且你没有给出代码来帮助。可能的重复甚至可以依赖于容器中JButton控件的顺序(该控件的行为类似于数组),如果做出其他假设,而不是创建一个单独的数组。但这是相同的想法:使用a来处理“动态变量名”。你说的
非法正向引用
错误是什么意思?显示足够的代码来重现这个问题。我同意这个建议:-)+1Okay,我正在尝试这样做,但我得到了一个“非法转发引用”错误。我认为这与程序中稍后声明的按钮变量有关。有什么建议吗?是的,您希望将其声明为
JButton卡[]=new JButton[20]
,然后在程序中将其设置为
card[0]=new JButton(…)
,以及
card[1]=新的JButton(…)
等。代替
card0=…
等。我同意这个建议:-)+1Okay,我正在尝试这样做,但我得到了一个“非法转发引用”“每个按钮都有错误。我认为这与程序中稍后声明的按钮变量有关。有什么建议吗?是的,您希望将其声明为
JButton cards[]=new JButton[20]
,然后在程序中将其设置为。”