如何在java中动态显示变量名

问题描述 投票:0回答:1

我只想显示变量名称而不是值 来说吧

String x='abc';

我希望我的输出是

x
而不是
abc
不想创建这样的代码

System.out.println('x')

我想动态地将变量名称保存在另一个变量中并显示它 就像如果有一个内置函数可以做到这一点,例如我知道这个函数不存在,但可以说它存在

System.out.println(x.getVariableName()) //output x

我想要一个类似的东西

java string variables
1个回答
1
投票

你不能。当你用java字节码编译java程序时,不包括变量名的信息。

例如: 文件

Main.java

public class Main
{
    public static void main(String[] args) {
        String x = "abc";
        System.out.println(x);
    }
}

编译于

Main.class
:

Êþº¾   = 
      java/lang/Object <init> ()V  abc  
   
  java/lang/System out Ljava/io/PrintStream;
      java/io/PrintStream println (Ljava/lang/String;)V  Main Code LineNumberTable main ([Ljava/lang/String;)V 
SourceFile     Main.java !                    *· ±                      +     L²    +¶ ±              
       

如果您尝试使用反编译器来反编译字节码,您会得到:

import java.io.PrintStream;

public class Main
{
  public static void main(String[] paramArrayOfString)
  {
    String str = "abc";
    System.out.println(str);
  }
}

如您所见,没有任何有关变量名称的信息。

© www.soinside.com 2019 - 2024. All rights reserved.