我有嵌套類的Java問題。如何使用從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(){
}
}
}
但隨後的麻煩就開始了。靜態方法不能從非靜態接口方法正確繼承,因爲我在Eclipse中收到此消息This static method cannot hide the instance method from TopClass.NestedClass
。
當我做接口方法靜態的,它給了我這個錯誤: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(){
}
}
}
但同樣,看似抽象方法不能聲明爲靜態:The abstract method method in type NestedClass can only set a visibility modifier, one of public or protected
。
離開靜態(在抽象類方法中),在NestedClass1的方法方法中出現錯誤& 2:This static method cannot hide the instance method from TopClass.NestedClass
。
是否有任何方法來聲明某種覆蓋靜態方法的上層結構?
編輯: 這個問題我實際上試圖解決它缺乏Java存儲引用方法的可能性。所以相反,我只用一種方法讓每個人都有類,但是將它們存儲在List f.e中。他們必須能夠被上層建築「抓住」。 我得到了嘗試匿名類或枚舉的提示,現在就試一試。
你究竟想在這裏完成什麼?意思是除了嵌套類,接口等之外,實際的目標是什麼?似乎你可能會過度解決問題的任何問題。靜態方法的接口沒有意義,因爲靜態方法只聲明/存在*一次*。 –
我用Enumeration做了。哪些工作正常:) –
「但我認爲靜態類中的每個方法都是靜態的,」 - 不,這不是事實。我認爲你對嵌套類和內部類的區別感到困惑。閱讀[this](http://docs.oracle.com/javase/tutorial/java/javaOO/nested.html)和[this](http://stackoverflow.com/questions/70324/java-inner-class-靜態嵌套類) –