public Field findField()

in src/main/java/org/apache/bcel/classfile/JavaClass.java [418:448]


    public Field findField(final String fieldName, final Type fieldType) throws ClassNotFoundException {
        for (final Field field : fields) {
            if (field.getName().equals(fieldName)) {
                final Type fType = Type.getType(field.getSignature());
                /*
                 * TODO: Check if assignment compatibility is sufficient. What does Sun do?
                 */
                if (fType.equals(fieldType)) {
                    return field;
                }
            }
        }

        final JavaClass superclass = getSuperClass();
        if (superclass != null && !"java.lang.Object".equals(superclass.getClassName())) {
            final Field f = superclass.findField(fieldName, fieldType);
            if (f != null && (f.isPublic() || f.isProtected() || !f.isPrivate() && packageName.equals(superclass.getPackageName()))) {
                return f;
            }
        }
        final JavaClass[] implementedInterfaces = getInterfaces();
        if (implementedInterfaces != null) {
            for (final JavaClass implementedInterface : implementedInterfaces) {
                final Field f = implementedInterface.findField(fieldName, fieldType);
                if (f != null) {
                    return f;
                }
            }
        }
        return null;
    }