レガシーアプリケーションのコードでは、内部クラスを含むクラスファイルが見つかりましたが、内部クラスはクラス本体内で定義されていませんが、クラス定義の閉じ括弧の後にあります。クラスファイルの内部クラスですが、クラス本体にはありませんか?
それはsilikeこの見えた:明らかに、コンパイラは文句はありませんが、私は前にこのような何かを見たことがないように私はかなりイライラした
MyClass.java
public class MyClass {
// class body
}
class DataStructure1 {
String field1;
Integer field2;
}
class DataStructure2 {
Date field3;
String field4;
}
を。
- 内部クラスですか?
- 字下げを除いて、本文内に定義されたクラスに違いはありますか?
[仕様の読み取り](https://docs.oracle.com/javase/specs/jls/se8/html/jls-8.html#jls-8.1.3):「内部クラスはネストされたクラスです明示的または暗黙的に静的に宣言されていません "、および"ネストされたクラスは、宣言が別のクラスまたはインタフェースの本体内で発生するすべてのクラスです。彼らは別のクラスの体の中にいないので、彼らは内部のクラスではありません。 –
探しているものが分かっていれば、何かを読むのはいつも簡単です。 ;-)リンクをありがとう。 –
内部クラスが存在する前に、パッケージローカルクラスがありました。これはJava 1.0から入手できました。 –