samedi 28 mars 2020

Explanation and proper format of "parameterTypes" in "java.lang.Class.getMethod()" method

I have the following code -

MyInterface.java -

    default int getNumber() {
        System.out.print("Number: ");
        return in.nextInt();
    }

    default void displayNumber(int num) {
        System.out.println("Number: " + num);
    }

Main.java -

        int num;

        MyInterface obj = new MyInterface() {
        };

        num = (int) obj.getClass().getMethod("getNumber").invoke(obj);
        obj.getClass().getMethod("displayNumber", parameterType).invoke(obj);

I have left out the exceptions for clarity purpose

Here I have created the interface - MyInterface with two methods -

One method reads a number and returns it.

The other method takes a number as parameter and prints it.

In Main method I have created an inner class to implement the interface

Now using reflection and getMethod() I am able to successfully call the first method to read a number.

But I don't know the proper format to pass an argument using getMethod() and hence I am unable to successfully call the second method.

Here, what should be in place of parameterType?





Aucun commentaire:

Enregistrer un commentaire