假设 MyClass
是在 Java 中定义的类,具有许多静态和非静态成员。我试图在 Scala 对象 MyObject
中为此类(和相关的伴随对象)起别名如下所示:
object MyObject {
import javastuff._
type MyAlias = MyClass
val MyAlias = MyClass
}
斯卡拉克提示:
error: object MyClass is not a value
val MyAlias = MyClass
我该如何解决这个问题?谢谢。
最佳答案
虽然这在纯 Scala 中适用于类 + 伴生对象,但对于 Java 的静态方法是不可能的,因为它们不属于任何接口(interface)。
理论上,Scala 可以创建一个对象,其中包含对某个类的所有静态方法的委托(delegate),但它目前不这样做。如果您愿意编写插件,也可以为此编写编译器插件。
如果做不到这一点,您要么必须自己创建一个充满委托(delegate)的对象,要么只挑选一些方法并将它们作为函数传递。
关于scala - 使用静态变量对 Java 类进行类型别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4943256/