Mirror DSL 是一个用来简化 Java 的反射编程的类库,类似于 BeanUtils 。
如果直接使用 Java 的反射(Reflection) API,那么代码可能很长,如下:
Field toSet = null; for (Field f : target.getClass().getDeclaredFields()) { //Get all fields DECLARED inside the target object class if (f.getName().equals("field")) { toSet = f; } } if (toSet != null && ((toSet.getModifiers() & Modifier.STATIC) == 0) && ((toSet.getModifiers() & Modifier.FINAL) == 0)) { toSet.setAccessible(true); toSet.set(target, value); }
而使用 Mirror DSL 只要短短的一行代码:
ReflectionUtil.setField(target, fielName, value);