Das macht auch garkein Sinn in einem Interface eine static-Methode zu haben.
Ein Interface sorgt dafür, das sichergestellt wird das ein Objekt alle Methoden beinhaltet die von einem anderen Objekt gefordert werden ohne den Inhalt zu spezifizieren.
Du kannst aber keine statischen-Methoden überschreiben. Das macht garkein Sinn.
Static bedeutet “nicht OOP”, also weder an ein Objekt gebunden noch sonstige OOP Sachen.
Da Java aber eine reine OOP Sprache ist, müssen statische Methoden und Variablen halt trotzdem in irgendeine Klasse mit reingepackt werden weil es keinen anderen Ablagerort gibt.
[quote=ZickZack]Vermutlich willst du einen Interface bauen für spätere Singelton nutzung.[/quote]Wenn das stimmt dann lass Dir sagen, dass technische Singeltons mehr Probleme verursachen, als sie lösen.
Logische Singeltons kann man auch verwenden ohne das auf technischen Wege sicherzustellen. Allen voran wäre da DI mit entsprechenden Frameworky (Spring oder Guice) zu nennen.
In Java 8 kann man **konkrete **statische Methoden in Interfaces schreiben. Der TO will aber eine abstrakte statische Methode, die dann implementiert werden muss. Das geht auch in Java 8 nicht, und wird es aller Voraussicht nach auch in Zukunft nicht geben, weil wie schon oben gesagt alles statische „außerhalb“ jeder Vererbung steht.
Ich stell zu der Frage mal noch folgende zusätzlich : Factory ?
Angenommen ich möchte ein Factory-Interface erstellen, so kann ich ja dann trotzdem die nötige static getIntance Methode nicht mit vorgeben.
Also mal abgesehen vom Singleton : Wie siehts mit Factories aus ?
Den Blitzeinfall hatte ich auch bereits einmal vor ein paar Monaten.
Was Factories und Konstruktoren allgemein angeht ist meiner Meinung nach Java ziemlich hinten her. Die Tatsache das die Nötigkeit besteht überhaupt erst Factory Methoden zu schreiben ist doch ein Zeugnis dafür das standard Konstruktoren nicht mehr den Anforderungen gerecht werden.