ネストされたクラスに関する Java の問題があります。
私の最初のクラス構造は次のようになりました。
public class TopClass {
public void mainMethod() {
// uses the different "method" methods from
// NestedClass-implementing nested classes
}
private interface NestedClass {
public void method();
}
private class NestedClass1 {
public void method() {
}
}
private class NestedClass2 {
public void method(){
}
}
}
method()
しかし、これらのメソッドは主に静的であるべきであるため、これらのメソッドを静的にしたいと考えています。
それらを静的クラスに含めずに静的にすることはできませんが、それは問題ありません。クラスを静的にしました。とにかくそうする必要があります。
現在、次のようになっています。
public class TopClass {
public void mainMethod() {
// uses the different "method" methods from
// NestedClass-implementing nested classes
}
private static interface NestedClass {
public void method();
}
private static class NestedClass1 {
public static void method() {
}
}
private static class NestedClass2 {
public static void method(){
}
}
}
しかし、その後、問題が始まります。This static method cannot hide the instance method from TopClass.NestedClass
Eclipse でこのメッセージが表示されるため、静的メソッドは非静的インターフェイス メソッドから正しく継承されません。
インターフェイス メソッドを静的にすると、次のエラーが表示されます。Illegal modifier for the interface method method; only public & abstract are permitted
だから私は抽象クラスを考えて、これを試しました:
public class TopClass {
public void mainMethod() {
// uses the different "method" methods from
// NestedClass-implementing nested classes
}
private static abstract class NestedClass {
public static abstract void method();
}
private static class NestedClass1 {
public static void method() {
}
}
private static class NestedClass2 {
public static void method(){
}
}
}
しかし繰り返しになりますが、一見抽象的なメソッドは static: と宣言することはできませんThe abstract method method in type NestedClass can only set a visibility modifier, one of public or protected
。
(抽象クラス メソッドで) static を残すと、NestedClass1 & 2: のメソッド メソッドでエラー this が発生しますThis static method cannot hide the instance method from TopClass.NestedClass
。
静的メソッドをカバーするためのある種の上部構造を宣言する方法はありませんか?
編集:私が実際に解決しようとしている問題は、メソッドへの参照を格納するための Java の可能性の欠如です。代わりに、メソッドを 1 つだけ持つこれらのクラスをすべて用意しますが、それらを List fe に格納するには、上部構造によって「キャッチ」できる必要があります。匿名クラスまたは列挙型を試すヒントを得たので、それを試してみます。