Issue in GWT project https://github.com/gwtproject/gwt/issues/9483
Stas On Saturday, January 28, 2017 at 8:32:48 AM UTC+1, foal wrote: > > Hi, > > I have in code the following lines (few of `Panel` classes implements > `TagAware` interface): > > ```Java > private final Map<PanelType, Panel<T>> panels; > //... > panels > .values() > .stream() > .filter(TagAware.class::isInstance) > .map(TagAware.class::cast) > .forEach(t -> t.setTagsWorkHours(this.tagsWorkHours)); > ``` > The code perfectly compile by javac, but not with GWT compiler: > > Errors in > 'file:/C:/Development/work/repo/JRS/open/gxt/calendar/widget/src/main/java/org/jresearch/gwt/client/date/widget/Calendar.java' > Line 376: The type Class<TagAware> does not define > isInstance(Panel<T>) that is applicable here > Line 376: The method filter(Predicate<? super Panel<T>>) in the > type Stream<Panel<T>> is not applicable for the arguments > (TagAware.class::isInstance) > > The same with cast > > Errors in > 'file:/C:/Development/work/repo/JRS/open/gxt/calendar/widget/src/main/java/org/jresearch/gwt/client/date/widget/Calendar.java' > Line 377: The method map(Function<? super Panel<T>,? extends R>) > in the type Stream<Panel<T>> is not applicable for the arguments > (TagAware.class::cast) > Line 377: The type Class<TagAware> does not define cast(Panel<T>) > that is applicable here > > > ##### Known workarounds > > Rewrite the above lines without method references: > > ```Java > panels > .values() > .stream() > .filter(p -> p instanceof TagAware) > .map(p -> (TagAware) p) > .forEach(t -> t.setTagsWorkHours(this.tagsWorkHours)); > ``` > > Best, > Stas > -- 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 post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/google-web-toolkit. For more options, visit https://groups.google.com/d/optout.
