2016-11-24 4 views
1

Ich möchte eine Art an Alias:Zugang Felder eines aliased Typ in Scala

type T = Int 

Gibt es eine Möglichkeit, dass ich dies später tun könnte?

T.MaxValue 
+2

'MaxValue' ist eine in _object_' Int' definierte Methode, sie hat nichts mit _type_ 'Int' zu tun. –

+0

Sie meinen 'val T = Int'. –

+1

[Diese Frage] (http://stackoverflow.com/questions/33112637/access-to-a-types-companion-object), und ihre Antwort, könnte eine Hilfe sein. – jwvh

Antwort

2

Nein, es gibt keine Möglichkeit, dies zu tun. Wenn Sie Int.MaxValue sagen, du bist ein statisches Feld des Objekts Int Zugriff:

object Int extends AnyValCompanion { 
... 
    final val MaxValue = java.lang.Integer.MAX_VALUE 
... 
} 

Wenn Sie einen Typ mit type T = Int binden, sind Sie nur den Typ vererben, so dass Sie das Objekt nicht bekommen, als auch . Sie können jedoch folgendes tun:

scala> val t = Int 
t: Int.type = object scala.Int 

scala> t.MaxValue 
res2: Int = 2147483647 
+1

Oder 'val T = Int'. Und Sie können sowohl "val T" als auch "type T" gleichzeitig haben. –