根据另一个类中给定的Input,该类必须从要在其中找到该变量的4个类之一中检索一个变量。例如。如果输入是s
则在Sumup.counter
中找到该类正在寻找的变量,而当输入是a
时,需要在Abstract.counter
等中找到所需的变量,依此类推填充数组。在这4个不同的类之一中,它必须选择5个不同的变量。因此,为了避免进行大量额外的编程,我想用一个变量替换这些类名Sumup
和Abstract
。因此,它看起来必须类似于Variable.counter
,Variable.part1
等。其中Variable可以是Sumup
或Abstract
(或Multiply
或Divide
)。
有人建议如何做吗?
public class Erroranalysis {
public static int[][] wrongcalculations = new int[5][Numberofcalculations.numcalc];
static int runner = 0;
static String routine;
public static void main(String[] args)
{
switch (kindofcalculation.choice)
{
case "s":
routine = "Sumup";
break;
case "a":
routine = "Abstract";
break;
case "m":
routine = "Multiply";
break;
case "d":
routine = "Divide";
break;
}
if (routine.counter <= Numberofcalcluations.numcalc)
{
wrongcalculations[0][runner] = routine.counter;
wrongcalculations[1][runner] = routine.part1;
wrongcalculations[2][runner] = routine.part2;
wrongcalculations[3][runner] = routine.result;
wrongcalculations[4][runner] = routine.answer;
runner++;
}
}
}
最佳答案
您可以选择一个基本的抽象类并为该类创建一个数组:
class Base{
public int counter = 0;
}
class Sumup extends Base{
}
class Abstract extends Base{
}
public class Erroranalysis {
public static int[][] wrongcalculations = new int[5][Numberofcalculations.numcalc];
static int runner = 0;
static Base routine;
static Sumup sumup;
static Abstract abs;
public static void main(String[] args)
{
sumup = new Sumup();
abs = new Abstract();
// possibly, this part won't be in main, but in some for loop of another method
switch (kindofcalculation.choice)
{
case "s":
routine = sumup;
case "a":
routine = abs;
}
if (routine.counter <= Numberofcalcluations.numcalc)
{
wrongcalculations[0][runner] = routine.counter;
wrongcalculations[1][runner] = routine.part1;
wrongcalculations[2][runner] = routine.part2;
wrongcalculations[3][runner] = routine.result;
wrongcalculations[4][runner] = routine.answer;
runner++;
}
}
}