Ich lerne Scala, und ich kann mir nicht vorstellen, wie ich diese einfache Java-Klasse in Scala am besten ausdrücken kann:
%Vor%Das Beste, was ich habe, ist folgendes:
%Vor%Aber ich verliere die Vorteile von BLACK, WHITE und GREEN, die an den Color-Namespace gebunden sind.
Sie könnten einfach die spezifischen Farben in das Begleitobjekt einfügen:
%Vor%BEARBEITEN :
Alternativ könnten Sie Werte innerhalb des Companion-Objekts haben:
%Vor%Sie könnten sie faul machen, die Instanziierung zu verzögern, bis sie verwendet werden:
%Vor%Wenn Sie die ursprüngliche Lösung zurückverfolgen, können Sie die Erweiterung der Klasse verhindern (indem Sie "final" simulieren, indem Sie die Farbe versiegeln:
) %Vor%sealed erlaubt Objekterweiterungen mit derselben physischen Datei..nicht in einer anderen Datei. versiegelt liegt näher am Paketumfang als das Finale.