reification

___ tag123java ___ Java (nicht zu verwechseln mit JavaScript oder JScript oder JS) ist eine universelle objektorientierte Programmiersprache, die für die Verwendung in Verbindung mit der Java Virtual Machine (JVM) entwickelt wurde. "Java-Plattform" ist der Name für ein Computersystem, auf dem Tools zum Entwickeln und Ausführen von Java-Programmen installiert sind. Verwenden Sie dieses Tag für Fragen, die sich auf die Java-Programmiersprache oder Java-Plattform-Tools beziehen. ___ tag123generics ___ Generika sind eine Form von parametrischer Polymorphie, die in einer Reihe von Sprachen gefunden wird, einschließlich .NET-Sprachen, Java und Swift. ___ qstnhdr ___ Warum bricht Function.identity () die Typ-Wiederholung ab, t-t aber nicht? ___ answer38035546 ___

Ecj kann das korrekte (?) Argument (Integer) eingeben, um den Bedingungen zu entsprechen. Javac kommt aus irgendeinem Grund zu einem anderen Ergebnis.

Das ist nicht das erste Mal, dass sich javac / ecj beim Schließen von Typparametern anders verhalten.

In diesem Fall können Sie javac einen Hinweis mit Function. & lt; Integer & gt; identity () geben, um es mit javac compilierbar zu machen.

Für den Unterschied zwischen Function.identity () und t- & gt; t:

  • Function.identity () ist Function & lt; T, T & gt;
  • t- & gt; t ist in diesem Fall die Funktion & lt; Super Integer,? erweitert Integer & gt;

So t- & gt; t ist flexibler in den Methoden, zu denen es passen kann.

    
___ tag123reifung ___ Vergegenständlichung bezieht sich auf den Prozess, einen abstrakten Begriff zu nehmen und daraus eine konkrete Darstellung zu machen. ___ qstntxt ___

Antworten gefunden bei Java 8 lambdas, Function.identity () oder t- & gt; t scheinen zu implizieren, dass %code% entspricht fast immer %code% . Im unten gezeigten Testfall führt das Ersetzen von %code% durch %code% jedoch zu einem Compilerfehler. Warum ist das so?

%Vor%

Fall 1 kompiliert gut, aber Fall 2 schlägt fehl mit:

%Vor%

Meine Umgebung ist Windows 10, 64-Bit, Oracle JDK Build 1.8.0_92-b14.

UPDATE : Da dies unter ecj kompiliert wird, habe ich eine weitere Frage: Ist das ein Fehler in %code% ? Was sagt die JLS zu diesem Fall?

    
___
4
Antworten

Wie wirken sich generische C # -Auflistungen auf Sammlungen mit Grundelementen aus?

Wie ich es verstehe, unterstützen C # /. Net Generika ein gewisses Maß an Verdinglichung. Also, wenn ich den folgenden Code habe: %Vor% Wird der Wert 1 autoboxiert oder behandelt das Objekt 'list' primitive Zeichenfolgen effizient?     
18.09.2010, 10:39
3
Antworten

Irgendein Wort zu verdingter Generika in Java?

Ich weiß, dass diese Frage wahrscheinlich mehr Diskussionen provozieren wird als konkrete Antworten (von denen ich weiß, dass sie nicht vorzuziehen sind). Aber mit der kürzlichen Übernahme durch Oracle fragte ich mich, ob es irgendwas gibt, dass...
29.07.2010, 03:45
1
Antwort

Warum bricht Function.identity () die Typ-Wiederholung ab, t-t aber nicht?

Antworten gefunden bei Java 8 lambdas, Function.identity () oder t- & gt; t scheinen zu implizieren, dass Function.identity() entspricht fast immer t -> t . Im unten gezeigten Testfall führt das Ersetzen von t -> t durch Functio...
26.06.2016, 03:34