All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.geekonjava.reflection.Phanton Maven / Gradle / Ivy

The newest version!
package com.github.geekonjava.reflection;

import java.lang.reflect.Field;

public class Phanton {

  private final T target;
  private Class clazz;

  private Phanton(T target) {
    this.target = target;
    clazz = target.getClass();
  }

  public static  Phanton from(T target) {
    return new Phanton(target);
  }

  public Object call(String name) {
    return invoke(name);
  }

  private Object invoke(String name) {
    for (final Field field : clazz.getDeclaredFields()) {
      try {
        if (name.equals(field.getName())) {
          field.setAccessible(Boolean.TRUE);
          return field.get(target);
        }
      } catch (final IllegalAccessException e) {
        throw new RuntimeException(e);
      }
    }
    throw new RuntimeException("No such property with name " + name);
  }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy