Checking If a Method is Static Using Reflection in Java

1. Overview

In this quick tutorial, we’ll discuss how we can check if a method is static or not in Java by using the Reflection API.

2. Example

To demonstrate this, we’ll create StaticUtility class, with some static methods:

public class StaticUtility {
    public static String getAuthorName() {
        return "Umang Budhwar";
    }
    public static LocalDate getLocalDate() {
        return LocalDate.now();
    }
    public static LocalTime getLocalTime() {
        return LocalTime.now();
    }
}

3. Check If a Method is static

We can check if a method is static or not by using the Modifier.isStatic method:

@Test
void whenCheckStaticMethod_ThenSuccess() throws Exception {
    Method method = StaticUtility.class.getMethod("getAuthorName", null);
    Assertions.assertTrue(Modifier.isStatic(method.getModifiers()));
}

In the above example, we’ve first got the instance of the method which we want to test by using the Class.getMethod method. Once we have the method reference, all we need to do is just call the Modifier.isStatic method.

4. Get All static Methods of a Class

Now that we already know how to check if a method is static or not, we can easily list all the static methods of a class:

@Test
void whenCheckAllStaticMethods_thenSuccess() {
    List<Method> methodList = Arrays.asList(StaticUtility.class.getMethods())
      .stream()
      .filter(method -> Modifier.isStatic(method.getModifiers()))
      .collect(Collectors.toList());
    Assertions.assertEquals(3, methodList.size());
}

In the above code, we’ve just verified the total number of static methods in our class StaticUtility.

5. Conclusion

In this tutorial, we’ve seen how we can check if a method is static or not. We’ve also seen how to fetch all the static methods of a class as well.

As always, the complete code for this example is available over on GitHub.

The post Checking If a Method is Static Using Reflection in Java first appeared on Baeldung.

        

\"IT電腦補習
立刻註冊及報名電腦補習課程吧!

Find A Teacher Form:
https://docs.google.com/forms/d/1vREBnX5n262umf4wU5U2pyTwvk9O-JrAgblA-wH9GFQ/viewform?edit_requested=true#responses

Email:
public1989two@gmail.com






www.itsec.hk
www.itsec.vip
www.itseceu.uk

Be the first to comment

Leave a Reply

Your email address will not be published.


*