EventHandler.java 文件源码

java
阅读 48 收藏 0 点赞 0 评论 0

项目:OpenJSharp 作者:
private Object applyGetters(Object target, String getters) {
    if (getters == null || getters.equals("")) {
        return target;
    }
    int firstDot = getters.indexOf('.');
    if (firstDot == -1) {
        firstDot = getters.length();
    }
    String first = getters.substring(0, firstDot);
    String rest = getters.substring(Math.min(firstDot + 1, getters.length()));

    try {
        Method getter = null;
        if (target != null) {
            getter = Statement.getMethod(target.getClass(),
                                  "get" + NameGenerator.capitalize(first),
                                  new Class<?>[]{});
            if (getter == null) {
                getter = Statement.getMethod(target.getClass(),
                               "is" + NameGenerator.capitalize(first),
                               new Class<?>[]{});
            }
            if (getter == null) {
                getter = Statement.getMethod(target.getClass(), first, new Class<?>[]{});
            }
        }
        if (getter == null) {
            throw new RuntimeException("No method called: " + first +
                                       " defined on " + target);
        }
        Object newTarget = MethodUtil.invoke(getter, target, new Object[]{});
        return applyGetters(newTarget, rest);
    }
    catch (Exception e) {
        throw new RuntimeException("Failed to call method: " + first +
                                   " on " + target, e);
    }
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号