根据另一个类中给定的Input,该类必须从要在其中找到该变量的4个类之一中检索一个变量。例如。如果输入是s则在Sumup.counter中找到该类正在寻找的变量,而当输入是a时,需要在Abstract.counter等中找到所需的变量,依此类推填充数组。在这4个不同的类之一中,它必须选择5个不同的变量。因此,为了避免进行大量额外的编程,我想用一个变量替换这些类名SumupAbstract。因此,它看起来必须类似于Variable.counterVariable.part1等。其中Variable可以是SumupAbstract(或MultiplyDivide)。

有人建议如何做吗?

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++;
         }
    }
}

09-11 19:30
查看更多