5
Bunu dönüştürmek çalışıyorum:Java 8 jenerikler ve tür kesmesi sorunu
daha modern Java 8 akışları sürümüne, sadece iyi derlerstatic Set<String> methodSet(Class<?> type) {
Set<String> result = new TreeSet<>();
for(Method m : type.getMethods())
result.add(m.getName());
return result;
}
:
static Set<String> methodSet2(Class<?> type) {
return Arrays.stream(type.getMethods())
.collect(Collectors.toCollection(TreeSet::new));
}
bir hata üretir Hangi ileti:
error: incompatible types: inference variable T has incompatible bounds
.collect(Collectors.toCollection(TreeSet::new));
^
equality constraints: String,E
lower bounds: Method
where T,C,E are type-variables:
T extends Object declared in method <T,C>toCollection(Supplier<C>)
C extends Collection<T> declared in method <T,C>toCollection(Supplier<C>)
E extends Object declared in class TreeSet
1 error
Derleyicinin neden bu sorunu çözmek için sorun yaşadığını anlayabiliyorum. nference. Göremediğim şey, onu nasıl düzelteceğimiz. Kimse biliyor mu?
Maalesef ve onu işaret için teşekkür ederim: Başka terimlerle
, onun adınaMethod
gelen eşleme eksik. – user1677663