scala - 如何将 Scala 特征转换为 java?

标签 scala

例如假设我有

abstract class OrderRouter extends Market {
}

我通常会按如下方式实例化
new OrderRouter with NYSE

我如何将上面的行翻译成java?纽约证券交易所是扩展市场的特征。

最佳答案

看问题How are Scala traits compiled into Java bytecode? ,以及接受的答案。

总结是,假设 NYSE 有 getOrderBook()方法,Java 版本如下所示:

new OrderRouter() {
    public OrderBook getOrderBook() {
        return NYSE$class.getOrderBook();
    }
}

Scala 编译器为合成类生成字节码,通过组合/包装混合所有特征实现。由于javac没有此功能,您需要自己将 trait 方法的委托(delegate)连接到 trait 的单例对象。

关于scala - 如何将 Scala 特征转换为 java?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7307378/

相关文章:

scala - 分解 Spark SQL 表中的多列

scala - 这两个对采用结构类型集合的函数的调用有什么区别?

java - 从 Scala 代码下载涉及 Http 身份验证的文件

scala - 迭代 RDD 并更新可变集合返回一个空集合

java - 使用 gm4java 在单个进程中进行多个图像操作

scala - 带有 Play2.4 和 scala 的 Google Guice 的循环依赖错误

function - Scala 函数调用

scala - 更新嵌套结构的更简洁的方法

与 Option 类型匹配的 Scala 模式

scala - Scala 查找数组的所有元素是否具有相同长度的方法是什么?