2016-05-19 3 views
4

EntrygetKey() und getValue() Methoden beim Sammeln aus dem Stream als Eclipse bietet nur Object Methoden, obwohl alles normal kompiliert.Eclipse Mars Bug mit Map.Entry Methoden bei der Verwendung von Streams?

someMap.entrySet().stream() 
        .filter(entry -> entry.getKey().isConsumed() || entry.getKey().getSurvivalCount() > 0) 

        // this compiles but auto-completion only offers object methods 
        .collect(Collectors.toMap(entry -> entry.getKey(), entry -> entry.getValue())); 

Ist dieser Fehler Eclipse oder ich bin etwas fehlt?

Ich verwende: Version: Mars.1 Veröffentlichung (4.5.1)

Bild zur Visualisierungen:

eclipse playing tricks

Antwort

2

Eclipse-glücklich ist, wenn ich das Prädikat als anonymes inneren angeben Klasse:

Predicate<Entry<String, Integer>> predicate = new Predicate<Entry<String, Integer>>() { 
    public boolean test(Entry<String, Integer> entry) { 
     return entry.getKey() == null || entry.getKey().length() > 6; 
    } 
}; 
// ... 
someMap.entrySet().stream().filter(predicate) 

Allerdings ist das Lambda problematisch. Früher gab es andere Bugs mit Eclipse, z.B. es hat sich nicht einmal kompiliert, wie this oder this.

Es sieht also so aus, als hätten Sie einen Fehler mit Lambda und Code gefunden.

3

Ich benutze Version: Mars.2 Release (4.5.2) Build-ID: 20160218-0600 und ich habe das gleiche Problem wie Sie.

Es sieht wie ein Fehler aus, da es entry Variable als Objekt des Typs Entry erkennt. Ich konnte diesen Fehler in Eclipse bug list nicht finden.

+0

Dies beantwortet nicht wirklich die Frage. Wenn Sie eine andere Frage haben, können Sie sie durch Klicken auf [Frage stellen] (http://stackoverflow.com/questions/ask) stellen. Sie können auch [Kopfgeld hinzufügen] (http://stackoverflow.com/help/privileges/set-bounties) hinzufügen, um mehr Aufmerksamkeit auf diese Frage zu lenken. - [Aus Bewertung] (/ review/low-quality-posts/12409174) – Matsemann

+3

@Matsemann Die Frage ist "Ist das Eclipse Bug oder mir fehlt etwas?". Wie ist: "Ich habe das gleiche Problem wie du. Es sieht wie ein Käfer aus [...]" keine Antwort darauf, und speziell, wie könnte das möglicherweise von dir als eine andere Frage gedeutet werden? –

+0

@ErwinBolwidt dann ist die Frage ein schlechter, es sollte nach Wegen fragen, es zu beheben, nicht wenn andere Leute das gleiche Problem haben. Um es klar zu sagen, wenn ich diese Antwort überarbeite, habe ich etwas wie * das ist ein "Ich habe dieses Problem als auch" gewählt. – Matsemann

Verwandte Themen