Wie auf eine exception zu werfen enum-Konstruktor?

Wie kann ich eine exception werfen enum-Konstruktor? eg:

public enum RLoader {
  INSTANCE;
  private RLoader() throws IOException {
   ....
  }
}

den Fehler erzeugt

Unhandled exception type IOException

  • Warum wollen Sie das tun? Das klingt für mich wie ein Missbrauch des enum-Konzept. Enum-Werte werden sollen, Konstanten, deren Gründung nicht von etwas abhängig. Auch wenn technisch könnten Sie das (durch das werfen einer unchecked exception statt einer geprüft eine), würde ich vorschlagen, Sie Ihren Entwurf überarbeiten. Wenn Sie versuchen, zu implementieren eines Singleton über diese enum, es ist besser, es zu implementieren, mit der hand wie eine normale Klasse.
  • Ich bin Implementierung eines Singleton, aber wie würde die Umsetzung es von hand, als eine normale Klasse besser sein? Ich würde immer noch eine Ausnahme von code durch einen statischen Initialisierer. Sie werfen können ungeprüfte Ausnahmen enum-Konstruktor.
  • es ist etwas eklig zu bekommen, wird eine Ausnahme geworfen, nur durch den Zugriff auf einen enum-Wert. Nicht so schlimm, wenn es ein singleton getInstance () - Methode.
  • Bitte keine singletons verwenden.
  • Török, wie würde die Umsetzung es von hand, als eine normale Klasse besser sein? Ich denke, es ist ok zu verwenden enum implementiert ein singleton, als <Effektive Java - > sagte.
InformationsquelleAutor tekumara | 2010-08-22
Schreibe einen Kommentar