知道类函数中是否使用了类属性

时间:2016-02-29 08:26:27

标签: java

使用Java中的反射允许我知道有关每个类函数的参数和返回类型的信息,但是我想知道是否存在一种方法来了解函数中是否使用了属性(在同一个类中): / p>

public class ClassExample {
    private String propertyExample;

    public void function1() {
       ...
    }

    public void function2() {
       ...
       propertyExample = "";
       ...
    }

    public Integer function3 (String parameter) {
       ...
       propertyExample = parameter;
       ...
    }   
  }

在这种情况下,我需要知道在 function2 function3 中使用 propertyExample

提前致谢。

2 个答案:

答案 0 :(得分:1)

不,如果不解析字节代码,那是不可能的。

答案 1 :(得分:0)

免责声明:在判断之前阅读完整的答案。

标记字段final将允许编译器警告您已使用(已分配)字段。

public class ClassExample {
    private static final String propertyExample;

    public void function1() {
       ...
    }

    public void function2() {
       ...
       propertyExample = ""; //<-- compiler tells you that propertyExample is used (assigned)
       ...
    }

    public Integer function3 (String parameter) {
       ...
       propertyExample = parameter; //<-- compiler tells you that propertyExample is used (assigned)
       ...
    }
}

虽然我的回答为您的问题提供了解决方案,但我确定它不会像您期望的那样。正如Edvin Syse所说,如果不解析字节代码就不可能。

然而,我们不知道这个问题的根本问题。您只向我们展示了您认为可以解决的解决方案。如果您与我们分享真正的问题,SO社区可能对您更有用,并能够帮助您找到问题的准确解决方案(可能: - ))。