Java количество появлений переменной / метода в коде - PullRequest
0 голосов
/ 29 апреля 2020

Я хочу узнать, как часто появляется одна указанная переменная c или как часто вызывается один указанный метод c в коде, и использовать это число в том же коде. Например:

public static main(String[] args){
   int a = 0;
   System.out.println(mysticMethod());
   a++;
   a = 3;
}

mysticMethod() теперь должно подсчитывать, как часто переменная a появляется в этом классе или в основном методе. Есть ли способ сделать это?

Я благодарен за все ответы!

1 Ответ

0 голосов
/ 29 апреля 2020

Я новичок в этом сайте, так что, надеюсь, я могу помочь. Я не уверен относительно вашего текущего понимания Java, но этот фрагмент кода, даже с функционалом mysticMethod (), не будет работать из-за переменной 'a', уже определенной и присвоенной значению ноль. Оператор приращения также не должен использоваться в объявлении переменной: int a++; ( сейчас, чтобы получить ответ, если вы уже знаете это ).

Ответ Насколько я понимаю, хотя можно подсчитать количество вхождений переменной / значения в структуре данных (такой как массив или список), чтобы конкретно отслеживать, сколько раз переменная используется / появляется в классе, может быть функция, указанная c для вашей IDE. Чтобы сделать это вручную, я бы создал переменную с именем «aCount» и увеличивал ее в своем коде каждый раз, когда я использую переменную «a». Затем вы можете использовать mysticMethod () для возврата значения 'aCount'.

Например:

public class ClassName{
    private static int aCount = 0;

    public static void main(String[] args){
        int a = 0; aCount++;
        System.out.println(mysticMethod()); // returns aCount with the value of '1'
        a = 10; aCount++;
        System.out.println(mysticMethod()); // returns aCount with the value of '2'
    }

    public static int mysticMethod(){
        return aCount;
    }
}

Однако я знаю, что отслеживает, сколько раз метод вызывается определенно возможно . Вы можете добавить аргумент к вызову метода, чтобы передать переменную, которая будет отслеживать вас.

Например:

public static void mysticMethd(MyClass obj){
    obj.methodCounter++; // add 1 to method calls (assuming methodCounter is public)
    // whatever the method does
}

Или как переменная 'aCount' из В приведенном выше примере вы можете создать переменную внутри того же класса, которая будет увеличиваться при каждом вызове метода.

public class ClassName{
    private static int aCount = 0;
    private static int methodCounter = 0;

    public static void main(String[] args){
        int a = 0; aCount++;
        System.out.println(mysticMethod()); // returns aCount with the value of '1'
        a = 10; aCount++;
        System.out.println(mysticMethod()); // returns aCount with the value of '2'
    }

    public static int mysticMethod(){
        methodCounter++; // Add 1 to number of calls
        if(methodCounter == 1){
            System.out.println("This method has been called: " + methodCounter + " time");
        }
        else{
            System.out.println("This method has been called: " + methodCounter + " times");
        }

        return aCount;
    }
}

Есть несколько способов добиться этого. Надеюсь, я немного помог.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...