Die ganze Frage ist im Titel. Zum Beispiel: Wenn angegebenWarum können Enum-Konstruktoren in Java nicht geschützt oder öffentlich sein?
enum enumTest {
TYPE1(4.5, "string1"), TYPE2(2.79, "string2");
double num;
String st;
enumTest(double num, String st) {
this.num = num;
this.st = st;
}
}
Der Konstruktor ist mit dem Standard oder private
Modifikator in Ordnung, aber gibt mir einen Compiler-Fehler den public
oder protected
Modifikatoren.
Es macht sehr viel Sinn. Aber warum sollte "default" erlaubt sein? Denn dann können auch andere Klassen im selben Paket den Konstruktor aufrufen. –
@Anita, bist du sicher Standard ist erlaubt? – jjnguy
Ja.Ich habe das Codebeispiel im OP kompiliert und ausgeführt. Keine Fehler. Aber das Seltsame ist, dass ich den Konstruktor immer noch nicht manuell aufrufen kann, auch nicht mit der Standardeinstellung. Ich dachte, Standard bedeutet, solange Sie im selben Paket sind, können Sie darauf zugreifen? Fehle ich etwas Großes hier? –