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.