2016-12-26 4 views
0

Ich bin mit der neuesten Version von IntelliJ IDEA auf seltsames Verhalten gestoßen. Ich habe kleine private Java-Bibliothek, und wenn ich versuche, es in einem anderen Projekt zu verwenden, zeigt IntelliJ falsche Methodenparameternamen an. Mehr hier auf dem Bild: wrong IntelliJ code completionZeigt IntelliJ falsche Code-Vervollständigung?

Beachten Sie, dass, wenn ich es so machen es funktioniert, wie es sollte: good intellij code completion

Kann ich die IDE so konfigurieren, dass sie es wie auf dem zweiten Bild anzeigen würde, oder es ein Fehler/beabsichtigtes Verhalten?

Bearbeiten:

Kombinatorik ist eine Schnittstelle. CombinatoricsImpl ist eine Klasse, die diese Schnittstelle implementiert und die Methode getCombinatorics hat, die eine neue Instanz von CombinatoricsImpl zurückgibt.

public static Combinatorics getCombinatorics() { 
    return new CombinatoricsImpl(); 
} 

Interface (ohne Javadoc-):

public interface Combinatorics { 

    double combinationsNonRepeating(int n, int k); 

    double variationsNonRepeating(int n, int k); 

    double permutationsNonRepeating(int n); 

    double combinationsRepeating(int n, int k); 

    double variationsRepeating(int n, int k); 

    double permutationsRepeating(List<Integer> frequencies); 
} 
+0

Sie verwenden nicht den gleichen Code in den beiden Beispielen. Kannst du den Originalcode hier hinzufügen? – ShacharSh

+0

Das ist der Punkt, denke ich, dass es in einem Fall funktioniert und wenn ich es anders schreibe, funktioniert es nicht. – Pitris

+0

Ich verstehe, aber das Hinzufügen des Codes würde uns helfen, Ihnen zu helfen – ShacharSh

Antwort

0

Die Methode getCombinatorics() ist ein Objekt vom Typ Kombinatorik nicht zurück. Deshalb funktioniert es nicht im ersten Bild.

Im zweiten Bild wird es in einen Combinatorics-Objekttyp umgewandelt. So funktioniert es im zweiten Bild.

Ich denke nicht, dass hier irgendetwas mit der Idee falsch ist.

+0

Diese Methode gibt eine Instanz der Klasse zurück, die die Schnittstelle Combinatorics implementiert (ich habe Code zu meinem ursprünglichen Beitrag hinzugefügt). In Netbeans IDE funktioniert das ohne Probleme und ich denke es ist ein Fehler in IDEA. – Pitris