src/org/nutz/ioc/loader/map/MapLoader.java
@SuppressWarnings("unchecked")
    private void checkParents(String name) throws ObjectLoadException {
        ArrayList<String> list = new ArrayList<String>();
        list.add(name);
        String currentParent = map.get(name).get("parent").toString();
        while (true) {
            if (currentParent == null)
                break;
            if (list.contains(currentParent))
                throw Lang.makeThrow(    ObjectLoadException.class,
                                        "!!!Inheritance cycle! id = %s",
                                        name);
            list.add(currentParent);
            Object obj = map.get(currentParent);
            if (obj != null && obj instanceof Map)
                currentParent = (String) ((Map<String, Object>) obj).get("parent");
            else
                throw Lang.makeThrow(    ObjectLoadException.class,
                                        "!!!Inheritance errors! id = %s",
                                        name);
        }
    }
@SuppressWarnings("unchecked")
    private void checkParents(String name) throws ObjectLoadException {
        ArrayList<String> list = new ArrayList<String>();
        list.add(name);
        String currentParent = map.get(name).get("parent").toString();
        while (true) {
            if (currentParent == null)
                break;
            if (list.contains(currentParent))
                throw Lang.makeThrow(    ObjectLoadException.class,
                                        "!!!Inheritance cycle! id = %s",
                                        name);
            list.add(currentParent);
            Object obj = map.get(currentParent);
            if (obj != null && obj instanceof Map)
                currentParent = (String) ((Map<String, Object>) obj).get("parent");
            else
                throw Lang.makeThrow(    ObjectLoadException.class,
                                        "!!!Inheritance errors! id = %s",
                                        name);
        }
    }
检查继承关系,如果发现循环继承,或其他错误的继承关系,则抛出ObjectLoadException

@param name
beanId
@throws ObjectLoadException
if Inheritance errors or Inheritance cycle founded.