java - Classname.Variable 与 Classname 作为变量一起使用
问题描述
根据另一个类中给出的输入,该类必须从要在其中找到该变量的 4 个类之一中检索一个变量。例如。如果输入是s
这个类正在寻找的变量,Sumup.counter
而当输入是a
它需要的变量时,将在Abstract.counter
etc 等中找到,以填充数组。在这 4 个不同的类别之一中,它必须选择 5 个不同的变量。因此,为了避免大量额外的编程,我想用一个变量替换这些类Sumup
名Abstract
。所以它必须看起来像这样Variable.counter
,Variable.part1
等等。其中变量可以是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++;
}
}
}
推荐阅读
- html - 使聊天消息不重叠 CSS
- node.js - 使用 Google 的 Node.js Sheets API 时出现身份验证错误:提供的密钥文件未定义有效的重定向 URI
- javascript - 如何使用 webdriverjs chrome setNetWorkConditions
- android - 由于 firebase-analytics 导致 Gradle 失败
- python - 为什么python会自动排序我没有告诉它排序的数组
- android - ADB 安装失败
- reactjs - 如何在 React 中使用 useState 仅更改循环内的当前(this)元素?
- ios - WidgetPreviewContext 不在框架中工作
- java - @Value 注解始终为 NULL
- authorize.net - 如何使用 Authorize.net API 检索两个日期之间所有交易的完整交易详情?