DZone
Java Zone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
  • Refcardz
  • Trend Reports
  • Webinars
  • Zones
  • |
    • Agile
    • AI
    • Big Data
    • Cloud
    • Database
    • DevOps
    • Integration
    • IoT
    • Java
    • Microservices
    • Open Source
    • Performance
    • Security
    • Web Dev
DZone > Java Zone > Reflection in Java Made Easy

Reflection in Java Made Easy

Ricky Yim user avatar by
Ricky Yim
·
May. 05, 14 · Java Zone · Interview
Like (0)
Save
Tweet
6.63K Views

Join the DZone community and get the full member experience.

Join For Free

Reflection is one of the most powerful APIs available to a Java developer. Out of the box, the standard Java api is quite labourious to use, especially to search and query for particular methods.

For example, on a project I was recently working, to retrieve all the public methods off a class that returned a string, taking in zero parameters, with a method naming starting with to, the code would have to look like this:

 ArrayList<Method> results = new ArrayList<Method>();     
 for (Method m : String.class.getDeclaredMethods()) {                
     if (Modifier.isPublic(m.getModifiers()) &&           
             m.getReturnType().equals(String.class) &&    
             m.getParameterCount() == 0 &&                
             m.getName().startsWith("to")) {              
         results.add(m);                                  
     }                                                    
 }                                                                                                                  

So you could imagine, if you had anything more complicated, how this would end up looking. I looked around and found the Reflections library which makes this kind of work extremely easy. Converting the same query as above would look like this:

  Set<Method> results = getMethods(String.class,
          withModifier(Modifier.PUBLIC),
          withReturnType(String.class),     
          withParametersCount(0),
          withPrefix("to"));                                              

There's a lot more complicated queries that could be achieved with the library. The javadoc is a good place to look for more information. So in future, hopefully you consider using the library if you need to perform any reflections related operations in Java.

Here are some related links.

  • https://github.com/ronmamo/reflections
  • http://docs.oracle.com/javase/tutorial/reflect/
Java (programming language)

Published at DZone with permission of Ricky Yim, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • A Guide to Events in Vue
  • Instancio: Random Test Data Generator for Java (Part 1)
  • Building a Kotlin Mobile App with the Salesforce SDK, Part 3: Synchronizing Data
  • A Guide to Understanding Vue Lifecycle Hooks

Comments

Java Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • MVB Program
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends:

DZone.com is powered by 

AnswerHub logo