Ich spiele gerade mit ASM und analysiere die Generikasignaturen der Klassen. Der dokumentierte mögliche Inhalt in diesem Abschnitt wird here beschrieben und könnte mit der folgenden Grammatik zusammenfassen:Was bedeutet :: in der Klassensignatur?
TypeSignature:Z | C | B | S | Ich | F | J | D | FieldTypeSignature
FieldTypeSignature:ClassTypeSignature | [TypSignatur | TypeVar
ClassTypeSignature:L Id (/ Id) TypeArgs? *; *
TypeArgs (Id TypeArgs.?):< TypeArg +>
TypeArg: ** | (+ | -)? FieldTypeSignature *
TypVar:T Id;
Allerdings fand ich für einen Fall, dass es nicht wahr ist:
trait SomeTrait
class SomeClass[T <: SomeTrait]
Generics Signatur für SomeClass
: <T::LSomeTrait;>Ljava/lang/Object;
Ich verstehe nicht, warum ::
hier erschienen und was bedeutet es. Doubled :
ist nicht von der Grammatik Sicht gültig. Was interessant ist, wenn ich trait
durch abstract class
ersetze, wird die ::
durch eine einzige ersetzt werden :
(was erwartet wird).
Irgendwelche Ideen?
Mögliche Duplikat http://stackoverflow.com/questions/20001427/double-colon-operator-in-java-8 – nullpointer
@nullpointer Wie funktioniert das gilt hier? – sepp2k