[英]How do languages Scala which need covariant return types and “real” class variance run on the CLR?
可能與 Java 的方式相同(Java 5 在語言級別支持協變返回,但 JVM 不支持它):通過添加合成方法。 下面是 Java 是如何做到的:假設你有這樣的 class:
class Foo implements Cloneable {
@Override
public Foo clone() {
// ...
}
}
在幕后,生成了兩個clone
方法: public Foo clone()
(包含真實代碼)和public Object clone()
(簡單地返回前者的結果)。 后一種方法(合成的)是如何在 JVM 級別覆蓋clone
方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.