当前位置: 首页 > 编程笔记 >

利用反射获取Java类中的静态变量名及变量值的简单实例

范华清
2023-03-14
本文向大家介绍利用反射获取Java类中的静态变量名及变量值的简单实例,包括了利用反射获取Java类中的静态变量名及变量值的简单实例的使用技巧和注意事项,需要的朋友参考一下

JAVA可以通过反射获取成员变量和静态变量的名称,局部变量就不太可能拿到了。

public class Test {

  public static void main(String[] args) throws Exception {
    // TODO Auto-generated method stub
    //获取所有变量的值
    Class clazz = Class.forName("com.qianmingxs.ScoreTable");
    Field[] fields = clazz.getFields();

    for( Field field : fields ){
      System.out.println( field.getName() + " " +field.getInt(clazz) );
    }
    //获取单个变量的值
    /*Class clazz = Class.forName("com.qianmingxs.ScoreTable");
    Field field = clazz.getField("FIVE");
    System.out.println( field.getInt(clazz));*/
  }

}

其中要查看的Java类是:

public class ScoreTable {
  private ScoreTable() {}
  public final static int FIVE = 100;//成5
  public final static int DOUBLE_ALIVE_FOUR = 99;//双活4(分析对手用)
  public final static int ALIVE_FOUR_AND_DEAD_FOUR = 98;//活4死4(对手分析用)
  public final static int ALIVE_FOUR_AND_ALIVE_THREE = 96;//活4活3(分析对手用)
  public final static int ALIVE_FOUR_AND_DEAD_THREE = 95;//活4死3(分析对手用)
  public final static int ALIVE_FOUR_AND_ALIVE_TWO = 94;//活4活2
  public final static int ALIVE_FOUR = 93;//活4
  public final static int DOUBLE_DEAD_FOUR = 92;//双死4
  public final static int DEAD_FOUR_AND_ALIVE_THREE = 91;//死4活3
  public final static int DEAD_FOUR_AND_ALIVE_TWO = 90;//死4活2
  public final static int DOUBLE_ALIVE_THREE = 80;//双活3
  public final static int ALIVE_THREE_AND_DEAD_THREE = 70;//活死3
  public final static int HALF_ALIVE_FOUR = 65;//半活4(类似○○ ○形),优先级小于活4
  public final static int ALIVE_THREE = 60;//活3
  public final static int DEAD_FOUR = 50;//死4
  public final static int DOUBLE_ALIVE_TWO = 40;//双活2
  public final static int DEAD_THREE = 30;//死3
  public final static int ALIVE_TWO = 20;//活2
  public final static int DEAD_TWO = 10;//死2
  public final static int SINGLE = 0;//单个
}

以上这篇利用反射获取Java类中的静态变量名及变量值的简单实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。

 类似资料:
  • 本文向大家介绍Java 反射修改类的常量值、静态变量值、属性值实例详解,包括了Java 反射修改类的常量值、静态变量值、属性值实例详解的使用技巧和注意事项,需要的朋友参考一下 前言 有的时候,我们需要修改一个变量的值,但变量也许存在于 Jar 包中或其他位置,导致我们不能从代码层面进行修改,于是我们就用到了下面的场景,通过反射来进行修改变量的值。 定义一个实体类 利用反射修改私有静态常量方法 修改

  • 我想从传递的几个值动态调用几个“setter”方法。每个方法都将具有字符串,int...要设置的变量类型(例如:setUserName(String userName)或setUserAge(int age))。 在我的例子中,我有一个setter方法“setUse_status(int use_stats)”,我无法配置getDeclaredMethod方法工作。似乎在获取方法时,classVa

  • 使用Java反射,是否可以获取局部变量的名称?例如,如果我有: 有没有可能实现一种方法,可以找到这些变量的名称,比如: 编辑:这个问题与Java中有没有找到传递给函数的变量名称的方法不同?在这一点上,它更纯粹地询问一个人是否可以使用反射来确定局部变量的名称,而另一个问题(包括公认的答案)更侧重于测试变量的值。

  • 问题内容: 我有一个带有getter和setter的2 POJO类,现在我正试图获取该类的所有类实例变量。 我知道我们可以使用反射该怎么做? 这是我的POJO类,它将扩展我的反射类。 反射类是这样的: 问题答案: 您可以执行以下操作: 这只会打印公共字段,要打印私有字段,请递归使用class.getDeclaredFields。 或者,如果您要扩展该类:

  • 问题内容: 根据Java,静态变量可以通过类名访问,但是即使Java不建议使用静态变量,类对象也可以访问它们,并且给出相同的答案。 我知道该变量只有一个副本,并且所有对象和其他事物的值都相同。Java为什么建议使用类名而不是类对象? 问题答案: 因为可能会造成混淆!静态成员上没有动态调度。 看一下这个令人困惑的代码:(可能是语法错误;我的Java生锈了) 看起来很混乱,因为方法似乎是多态的,所以输

  • 我有一个带有getter和setter的2个POJO类,现在我正在尝试获取该类的所有类实例变量。 我知道我们可以利用反思来做这件事? 这是我的POJO课程,它将扩展我的反思课程。 反射类如下: