Als ich über den Fall Google v Oracle las, stieß ich auf diese Fragen (anscheinend vom Vorsitzenden Richter)
...
Ist man sich einig, dass zumindest ab 1996 Folgendes zutrifft?Die folgenden waren die Hauptschnittstelle für die Java-Anwendungsprogrammierung: java.lang, java.util und java.io.
Bezieht sich die Java-Programmiersprache auf eine Methode, Klasse oder ein Paket außerhalb der drei oben genannten?
...
Quelle: Groklaw
Es gibt offensichtlich viele rechtliche Konsequenzen, Google und Oracle sind sich in einigen Punkten wahrscheinlich nicht einig, und es ist mir egal . Überlassen Sie das Gesetz den Anwälten.
Ich vermute jedoch, dass es hier ein interessantes Stück Geschichte gibt.
Meine Frage ist (als jemand, der zum ersten Mal eine Java-Codierung um 2001 in Version 1.3 durchgeführt hat), ob in Version 1.0 von Java irgendetwas außerhalb von erforderlich java.lang
war java.util
, und java.io
um ein gültiges Java-Programm zu kompilieren?
Als Beispiel (unter Verwendung von C # 5.0) ist das await
Schlüsselwort (unter anderem) abhängig von . Der Compiler könnte ohne diese Klasse nicht funktionieren.Task<T>
GetAwaiter()
Gab es auch Kernfunktionen zur Laufzeit (wie ClassLoader *), die von anderen Paketen abhängig waren?
Ich gebe zu, ich frage aus Neugier, was genau für ein Minimum an Java (die Sprache, die alle rechtlichen Aspekte ignoriert) von Interesse ist.
* Ich gehe davon aus, dass ClassLoader sogar ein Feature in Java 1.0 war, es ist Teil der Spezifikation in 7.0 und vermutlich in vielen früheren Versionen.
await
Schlüsselwort hängt nicht davon ab Task<T>
. Die Task
Klasse passiert einfach , die Dinge zu überzeugen , dass das await
Schlüsselwort nicht davon ab , (eine Methode namens GetAwaiter()
usw.).
yield
und IEnumerator oder so gegangen sein ; einfach so aufgeregt await
.