Scala的内部类和Java的内部/嵌套类之间有什么区别? [英] What are the differences between Scala’s inner classes and Java’s Inner/nested classes?

查看:327
本文介绍了Scala的内部类和Java的内部/嵌套类之间有什么区别?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Scala如何处理内部类与Java的嵌套,静态或非静态类不同?

How does Scala handle inner classes differently to Java's nested, static or non-static, classes?

推荐答案

主要区别如果你有

class Outer {
  class Inner {
    def foo(x: Inner): Inner = this // just for the example below
  }
}

Outer的两个实例

val a = new Outer
val b = new Outer

然后 a.Inner b.Inner 是两种不同的类型(在Java中,它们都是 Outer.Inner ),这样你就做不到了

then a.Inner and b.Inner are two different types (where in Java they'd both be Outer.Inner), so that you can't do

val aInner = new a.Inner
val bInner = new b.Inner
aInner.foo(bInner)

他们确实有常见的超类型写的外#内

They do have a common supertype which is written Outer#Inner.

这篇关于Scala的内部类和Java的内部/嵌套类之间有什么区别?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆