Hi,

I'm a user of the *gwt-jackson* library and I've just found the following 
bug:
https://github.com/nmorel/gwt-jackson/issues/160

To fix it, I need to get access of the annotations on a *default* Java8 
method interface:

    public static interface InterfaceBean {
        @JsonIgnore
        default String getName(){
            return "defaultName";
        }
    }


But tell me if I'm wrong, GWT doesn't provide this information!
I did setup a minimal demo project to explain the issue:
https://github.com/freddyboucher/gwt-java8-default-method-interface

As you see the *default* `*getGender*` method is not listed in neither 
*HasGender* or *Person* JClassType

public interface HasGender {
  @Nonnull
  default String getGender() {
    return "male";
  }
}


public class Person implements HasGender {
  @Nonnull
  public String getName() {
    return "Paul";
  }
}

public class CustomGenerator extends Generator {


  @Override
  public final String generate(TreeLogger logger, GeneratorContext context, 
String typeName) throws UnableToCompleteException {
    JClassType genderType = context.getTypeOracle().findType(HasGender.class
.getName());
    assert genderType.getMethods().length == 0;
    assert genderType.getInheritableMethods().length == 0;
    assert genderType.getOverridableMethods().length == 0;


    JClassType personType = context.getTypeOracle().findType(Person.class.
getName());
    assert Arrays.equals(new String[] { "getName" }, Arrays.stream(
personType.getMethods()).map(JAbstractMethod::getName).toArray());
    assert personType.getMethods()[0].isAnnotationPresent(Nonnull.class);


    String[] common = { "equals", "finalize", "getClass", "getName", 
"hashCode", "toString" };
    assert Arrays.equals(common, Arrays.stream(personType.
getInheritableMethods()).map(JAbstractMethod::getName).toArray());
    assert Arrays.equals(common, Arrays.stream(personType.
getOverridableMethods()).map(JAbstractMethod::getName).toArray());
    return null;
  }


}

-- 
You received this message because you are subscribed to the Google Groups "GWT 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-web-toolkit/cf63f9a0-1711-4e8f-bd89-d2b0a6614386%40googlegroups.com.

Reply via email to