Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.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_Arrays - Fatal编程技术网

Java 是否有任何方法可以输出变量名而不是值?[爪哇]

Java 是否有任何方法可以输出变量名而不是值?[爪哇],java,arrays,Java,Arrays,例如,我有一个整数变量列表 int CLUTCH_CASE = 8; int CS20 = 6; int DANGER_ZONE_CASE = 6; int TOTAL_CASE = 0; 我有一个数组: int CaseValue[] = {CS20, CLUTCH_CASE, DANGER_ZONE_CASE}; 我输出总案例的值,它将是: for (int counter=0;counter<CaseValue.length;counter++) { TOTAL_CASE

例如,我有一个整数变量列表

int CLUTCH_CASE = 8;
int CS20 = 6;
int DANGER_ZONE_CASE = 6;
int TOTAL_CASE = 0;
我有一个数组:

int CaseValue[] = {CS20, CLUTCH_CASE, DANGER_ZONE_CASE};
我输出总案例的值,它将是:

for (int counter=0;counter<CaseValue.length;counter++) {
    TOTAL_CASE += CaseValue[counter];
}
System.out.println("You have "+CaseValue.length+" CSGO Cases");
System.out.println("You have a total of "+TOTAL_CASE+" CSGO Cases:");
但是,我还想输出名称

例如: CASENAME只是本例的占位符。我想使用CaseValue[]。NAME,因为这是一个示例,所以它甚至不存在

for (int counter2=0;counter2<CaseValue.length;counter2++) {
    System.out.println(CASENAME+": "+CaseValue[counter2]);
}
有没有办法输出整型变量的名称?

使用映射

Map<String, Integer> ma = new Hashmap()
for (int counter=0;counter<CaseValue.length;counter++) {
    TOTAL_CASE += CaseValue[counter];
    ma.put(<your_key>, <your_value>)
}

我还是不完全理解你的代码。因此,无法提供完整的工作片段。不过,我添加了一个关于如何使用地图的片段。将键作为所需的名称及其对应的值存储在映射的该键中。

Java中没有访问变量名的命令

您可以使用其他答案中所述的映射,但我还想提供一种简单的可能性,这种可能性在没有Java高级功能的情况下是可能的

您可以执行以下操作:

String[] caseName = {"CS20", "CLUTCH_CASE", "DANGER_ZONE_CASE"};
之后,您可以执行以下操作:

for (int i=0; i<CaseValue.length; i++) {
    System.out.println(caseName[i] + ": " + CaseValue[i]);
}

您可以使用HashMap

枚举案例类型{ 离合器箱, CS20, 危险区案例; } Map Map=newhashmap3; map.putCaseType.离合器外壳,8; map.putCaseType.CS20,6; map.putCaseType.DANGER_ZONE_CASE,6; map.forEachkey,value->System.out.printlkey.name+:+value;
您需要使用java.lang.Class及其getFields方法返回java.lang.reflect Field[]类对象的数组 下面将向您介绍如何在API文档中查找更好、更合适的方法集,以使用列表或集合来设计流程,从而使用contains方法将其放入类中,并在需要时在程序中调用

import java.lang.Class;
import java.lang.reflect.*;

Field[] varFset = ((java.lang.Class)this).getFields();
// compare names processing code over the array here
String varname = varFset[x].getName();

最好使用LinkedHashMap来保留顺序。最好使用LinkedHashMap来保留顺序。出于某种原因,所有使用hashmap作为解决方案的答案都被否决了。我不知道为什么?因为他们没有保持输出的顺序。这是要求吗??据我所知,他是juzt印刷公司。是的,这是一项要求。没有明确地写下来,但是所有的示例输出都是按照声明顺序进行的。这根本不是使用反射的情况。请不要在这些基本任务中使用反射。
for (int i=0; i<CaseValue.length; i++) {
    System.out.println(caseName[i] + ": " + CaseValue[i]);
}
import java.lang.Class;
import java.lang.reflect.*;

Field[] varFset = ((java.lang.Class)this).getFields();
// compare names processing code over the array here
String varname = varFset[x].getName();