鑑於這些Java類定義:爲什麼來自Java的(T)this`不能在scala中工作?
class Base {
int value;
public <T extends Base> T self() {
return (T) this;
}
}
class Derived extends Base {}
這個Java代碼編譯罰款:
new Derived().self();
但Scala代碼無法運行:
(new Derived).self(); // runtime error
Rumtime錯誤:
java.lang.ClassCastException: Derived cannot be cast to scala.runtime.Nothing$
爲什麼它不起作用,以及如何解決它?
'(new Derived).self()'在問題中是scala代碼。 – Freewind 2013-05-12 14:08:57