研究のためにJDKのソースコード(6u23ビルドb5)をダウンロードしました.Eclipsedは自動的にビルドすることにしました。驚いたことに、それは間違いを見つけました。リリースされたJavaソースコードにエラーがあるのはなぜですか?
いくつかの例です。
java.beans.MetaData、行1365:
ConstructorProperties annotation = constructor.getAnnotation(ConstructorProperties.class);
型の不一致:ConstructorProperties
java.awt.AWTEventに注釈から変換することはできません、ライン220:
AWTAccessor.setAWTEventAccessor(new AWTAccessor.AWTEventAccessor() {
新しいAWTAccessor.AWTEventAccessor(){}型は継承した抽象メソッドを実装する必要がありますAWTAccessor.AWTEventAccessor.getAccessCont rolContext(AWTEvent)
このコードは、Javaの使い方の最良の例の1つではない場合、このコードは絶対に正しいと思われました。しかし、それはコンパイルされません!
更新:個々のプロジェクトにjavaパッケージをエクスポートし、可能な名前空間の競合を避けるためにJavaパッケージのデフォルトのインポートを削除し、JVM 1.6.0を使用してビルドしました。
でエラーを探したいですか?結局のところ、たとえソフトウェアが高品質であっても、ソフトウェアには常にエラーが存在する可能性があることに注意してください。ソフトウェアは結局100%エラーフリーではありません。オラクル社は、コンパイル不可能なコードを提供することに疑いがあります(しかし、ヒューマナム・ヒューマミストを知っている人は誰でも)) - ビルド環境とビルド環境の違いを探します。 – Thomas
コードベースのほとんどすべてのコードは良い例ですが、悪い例がたくさんあります。 : –
@Peter JDKのソースコードとAPIの設計は、彼らの年齢と、1.0 APIが非常に短期間で設計されなければならないという事実のために、かなり大丈夫です誰もクローン可能な実装を偉大なアーキテクチャー設計のパラゴンとみなしていません)。 – Voo