scala - 有没有办法从 Scala 中的实例中删除特征?

标签 scala traits

我想知道是否有一个在运行时添加了特征的实例,可以从实例中删除特征,因此它可以像原来一样运行。

最佳答案

特征在编译时与类结合。所以不可能在运行时添加/删除特征。

对于您的特定情况,请考虑向您的类添加一个方法:

class Foo(val a: Object, val b: Object, ...) {
  def original() = new Foo(a, b, ...)
}

然后您可以调用instance.original()取回不受任何特征影响的对象的副本。

关于scala - 有没有办法从 Scala 中的实例中删除特征?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7125751/

相关文章:

scala - 在 Scala 的构造函数中扩展具有隐式参数的类的惯用方法是什么?

scala - Akka-Http:如何测试一个请求

scala - Akka 中的阻塞 IO

scala - 匿名函数是如何实现特征的?

enums - 为特定变体派生特征

php - 有没有办法在 PHP 中扩展特征?

scala - java可执行jar的SBT项目

scala - 有没有办法使用 Scala 的 XML 库执行 XPath 字符串查询?

rust - 确保 Rust 中的特征实现满足属性

rust - 什么是解决 future 需要多长时间的干净方法?