如何在java程序中找到有多少方法及其名称使用我的变量?

时间:2015-07-17 09:02:44

标签: java

以下是查找我班级中使用的变量数量的示例。但我需要找到有多少方法在类中使用我的变量。

测试类有四种方法,但sample1变量用于test1()和test3()方法。 我希望输出为test1(),test2()使用sample1变量

import java.lang.reflect.Field;

public class Test {

private int sample1;
private int sample2;
private int sample3;

public void test1()
{
    System.out.println(sample1);
}
public void test2()
{
    System.out.println(sample2);
}
public void test3()
{
    System.out.println(sample1);
}
public void test4()
{
    System.out.println(sample3);
}

public static void main(String[] args) {

    Test t = new Test();

    Field f[] =Test.class.getDeclaredFields();
    for (int i = 0; i < f.length; i++)
    {
        System.out.println("Variable Name is : " + f[i].getName());
    }
}
}

1 个答案:

答案 0 :(得分:0)

这有帮助吗?

import java.lang.reflect.Field;
import java.util.*;

public class Main {

    private int sample1;
    private int sample2;
    private int sample3;
    private ArrayList<String> whoUseSameple1= new ArrayList<String>();

    int getSample1(String methodname){
        whoUseSameple1.add(methodname);
        return sample1;
    }
    public void test1(){
        System.out.println(getSample1(new Object(){}.getClass().getEnclosingMethod().getName()));
    }
    public void test2(){
        System.out.println(sample2);
    }
    public void test3(){
        System.out.println(getSample1(new Object(){}.getClass().getEnclosingMethod().getName()));
    }
    public void test4(){
        System.out.println(sample3);
    }

    public static void main(String[] args) {

        Main t = new Main();
        t.test1();
        t.test2();
        t.test3();
        t.test4();


        for (String s:t.whoUseSameple1){
            System.out.print(s+" ");
        }
        System.out.print("are usd Sample1 Variable\n");
    // Field f[] =Main.class.getDeclaredFields();
    // for (int i = 0; i < f.length; i++)
    // {
        // System.out.println("Variable Name is : " + f[i].getName());
    // }
    }
}
相关问题