我希望扩展特征的所有类都存储他们的创建时间(作为org.joda.time.DateTime
实例)。该特征将def dt : DateTime
定义为吸气剂。我是否还可以定义代码以获取特征中的时间戳(打算在构建时运行)?
更新:我想我已经想到了如何在不处理构造函数的情况下实现特定任务(只需将dt
定义为val并将其设置为新的DateTime,这可能会起作用) ,但标题中的问题仍然很有趣。
答案 0 :(得分:1)
您无法通过特征添加构造函数。
答案 1 :(得分:0)
只需替换def currentTime
的实现即可生成org.joda.time.DateTime
实例,并将该特征混合到任何类中。
trait Timestamp {
private def currentTime = {
import java.util.Calendar._
val calendar = getInstance
def hours = calendar.get(HOUR_OF_DAY)
def minutes = calendar.get(MINUTE)
def seconds = calendar.get(SECOND)
def milliseconds = calendar.get(MILLISECOND)
hours + ":" + minutes + ":" + seconds + ":" + milliseconds
}
final val creationTime = currentTime
}