在阅读有关Google v Oracle案的信息时,我遇到了这些问题(显然是从主持审判的法官那里获得的)
...
是否同意至少在1996年时以下情况成立?以下是Java应用程序编程接口的核心:java.lang,java.util和java.io。
Java编程语言是否引用或要求上述三个之外的任何方法,类或包?
...
资料来源:Groklaw
显然有很多法律后果,Google和Oracle在某些方面可能不同意,我不在乎。将法律交给律师。
但是,我怀疑这里有一段有趣的历史。
我的问题是(谁的人第一次做任何Java编码2001年在1.3版本左右),在Java的1.0版本是什么,需要外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
和IEnumerator或其他一起使用;真为之激动await
。