public class After8071693 {

    public interface A {
        default Object getDefault0() {
            return null;
        }
        default Object getDefault1() {
            return null;
        }
        default Object getDefault2() {
            return null;
        }
        default Object getDefault3() {
            return null;
        }
        Object getNonDefault();
    }

    public class B implements A {
        @Override
        public Object getDefault1() {
            return null;
        }
        @Override
        public String getDefault2() {
            return null;
        }
        @Override
        public Float getDefault3() {
            return null;
        }
        @Override
        public Long getNonDefault() {
            return null;
        }
    }

    public static void main(String[] args) throws java.beans.IntrospectionException {
        var info = java.beans.Introspector.getBeanInfo(B.class, Object.class);
        System.out.println(info.getBeanDescriptor());
        System.out.println("--- properties");
        for (var desc : info.getPropertyDescriptors()) {
            System.out.println(desc.getReadMethod());
        }
        System.out.println("--- methods");
        for (var desc : info.getMethodDescriptors()) {
            System.out.println(desc.getMethod());
        }
    }
}
