Java EEの世界を深く研究しています。Java EE が新しい仕様をリリースした後でも、アプリケーション サーバーの製造元は新しいバージョンを発表しました。すべての仕様の実装が Application Server Lib に存在し、コンパイルされた war ファイルにその jar が追加で必要ないことを私は知っています。それに加えて、JAVA EE を開発している間、次の依存関係が必要な Web プロジェクトを言うことができます
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>6.0</version>
</dependency>
javaee-api-6.0.jar を見ると、わずか 957KB、つまりクラス メソッド定義で構成されていることがわかります。
上記で javaee-api-6.0.jar のクラス ファイルの 1 つを逆コンパイルしたという事実により、これがその 1 つです。そうではありません。そして、私が理解したいのは、コンパイラーが次のようなメソッド定義を持つそのようなJavaクラスをどのように許可するかということです:
public ActivationDataFlavor(Class paramClass, String paramString1, String paramString2);
逆コンパイルされたクラス ファイル:
package javax.activation;
import java.awt.datatransfer.DataFlavor;
public class ActivationDataFlavor extends DataFlavor
{
private String mimeType;
private MimeType mimeObject;
private String humanPresentableName;
private Class representationClass;
public ActivationDataFlavor(Class paramClass, String paramString1, String paramString2);
public ActivationDataFlavor(Class paramClass, String paramString);
public ActivationDataFlavor(String paramString1, String paramString2);
public String getMimeType();
私のJavaコンパイラは、あなたが期待しているすべてのエラーを出します。
すべてのクラス ファイルがわずか 1KB であるため、Java コンパイラが正しく動作しないとは思いません。