Google v Oracleの事例を読んで、これらの質問に出くわしました(明らかに裁判長から)
...
少なくとも1996年の時点で、以下のことが真実であることに同意しますか?コアJavaアプリケーションプログラミングインターフェイスは次のとおりです。java.lang、java.util、およびjava.io。
Javaプログラミング言語は、上記の3つ以外のメソッド、クラス、またはパッケージを参照または要求していますか?
...
ソース:Groklaw
明らかに多くの法的影響がありますが、GoogleとOracleはおそらくいくつかの点で意見が一致せず、私は気にしません。法律は弁護士に任せてください。
ただし、ここには興味深い歴史が少しあると思います。
私の質問は、Javaのバージョン1.0には、(最初の任意のJavaはバージョン1.3に2001の周りにコーディングなかった誰かのように)あるものは外を必要としたjava.lang
、java.util
と、java.io
有効なJavaプログラムをコンパイルするには?
例として(C#5.0を使用)、await
キーワードは(特に)に依存しています。コンパイラは、そのクラスなしでは仕様どおりに機能できませんでした。Task<T>
GetAwaiter()
同様に、他のパッケージに依存するコアランタイム機能(ClassLoader *など)はありましたか?
私は好奇心から尋ねますが、最小限の実行可能なJava(言語、その周りのすべての法的ビットを無視する言語)に必要なものはまさに興味深いものです。
* ClassLoaderはJava 1.0の機能でさえあると仮定しています。7.0の仕様の一部であり、おそらく以前の多くのバージョンです。
await
キーワードはに依存しませんTask<T>
。Task
クラスはちょうどというものを満たすために起こるawait
キーワードがない(と呼ばれる方法に依存GetAwaiter()
など)。
yield
などを使用してください。とても興奮していawait
ます。