Angenommen, ich habe:Warum kann ich nicht F-begrenzt Objekt in Scala schaffen
trait A[AA <: A[AA]]
//or even just `
trait A[AA]
Dies funktioniert nicht:
scala> object AAA extends A[AAA.type]
<console>:8: error: illegal cyclic reference involving object AAA
object AAA extends A[AAA.type]
^
Aber das funktioniert:
scala> class AAA extends A[AAA]; object AAA extends AAA
defined class AAA
defined module AAA
Doing fast (nicht genau) gleich und das funktioniert. Irgendein Grund?
P.S. Und auch, was genau can I do innerhalb eines solchen Objekts, um Infinte-Zyklus im Compiler selbst zu erzwingen?
http://blog.originate.com/blog/2014/02/27/types-inside-types-in-scala/, Ich denke, das würde helfen. Aber welches Problem versuchen Sie damit zu lösen? – Governa
Vielleicht verwandt: https://issues.scala-lang.org/browse/SI-5082 – Governa
Gleiche Frage hier: http://stackoverflow.com/questions/17915353/refer-to-object-type-in-object- Definition, aber keine gute Antwort –