2016-12-05 4 views
1

Ich bin neu in Scala. Ich habe eine Klasse, die Parameter nimmt wie folgt:Scala schränken Klassenparameter ein

class myClass(val param: Params, val normalizer: Int){.. 

Ich habe eine Anwendung Methode, die die Klasse mit Standardparameterwerten initialisiert:

def apply(): myClass = new myClass(AnotherClass.getParams, 1000) 

Ich möchte den normalizer Parameter beschränken Bau der ermöglichen Objekt nur, wenn Normalizer> 0, und andernfalls eine Ausnahme auslösen. Dies sollte jedoch in allen Fällen geschehen, nicht nur im Standardfall in der Methode apply. Wie ist der richtige Umgang mit dieser Situation?

Danke, im Voraus.

Antwort

0

Fügen Sie einfach require(normalizer > 0) in der Klasse Körper und erstellen Hierarchie eine Klasse auf dieser Klasse basiert usw.

Weitere Details im Thread: what to choose between require and assert in scala.

Kleines Beispiel:

class test(n: Int){ 
    require(n > 10) 
} 

Und die related Predef documentation.

+0

können Sie genauer sein. geht das irgendwo in der Klassendefinition? In diesem Fall, was ist das Verhalten, wenn Normalizer <0? – bzak

+0

Update Antwort mit Beispiel! – Pavel

+0

Ihr zugehöriger Dokumentlink ist ungültig. – bzak

Verwandte Themen