Java 匿名对象的Scala语法
我试图找到与此java代码对应的Scala语法。假设A是一个类,A有一个方法sayHiJava 匿名对象的Scala语法,java,scala,oop,anonymous-class,Java,Scala,Oop,Anonymous Class,我试图找到与此java代码对应的Scala语法。假设A是一个类,A有一个方法sayHi newa().sayHi()将完全可以按照有效的java语法进行编译。另一方面,当我尝试新建A.sayHi()时,它不会在Scala中编译。Scala中对此有什么语法?在Scala中,可以使用以下语法之一: new A().sayHi() (new A).sayHi() 如果没有括号且前面有new,A.sayHi将被解释为一个类型,new A.sayHi()将是类类型A.sayHi的实例化。如果A.sayH
newa().sayHi()
将完全可以按照有效的java语法进行编译。另一方面,当我尝试新建A.sayHi()
时,它不会在Scala中编译。Scala中对此有什么语法?在Scala中,可以使用以下语法之一:
new A().sayHi()
(new A).sayHi()
如果没有括号且前面有new
,A.sayHi
将被解释为一个类型,new A.sayHi()
将是类类型A.sayHi
的实例化。如果A.sayHi
不是会导致编译错误的类类型
看一看:
scala> class A { def sayHi() = "hi" }; object A { type sayHi = String }
defined class A
defined object A
scala> new A().sayHi()
res0: String = hi
scala> new A.sayHi() // same as `new String()`
res1: String = ""
scala> (new A).sayHi()
res2: String = hi