我希望所有扩展特征的类都存储他们的创建时间(作为 org.joda.time.DateTime 实例) . 该特征将 def dt : DateTime 定义为吸气剂 . 我是否还可以定义代码以获取特征中的时间戳(打算在构建时运行)?
org.joda.time.DateTime
def dt : DateTime
更新:我想我已经想到如何在不处理构造函数的情况下实现特定任务(只需将 dt 定义为val并将其设置为新的DateTime,也许这会起作用),但 Headers 中的问题仍然很有趣 .
dt
只需替换 def currentTime 的实现即可生成 org.joda.time.DateTime 实例,并将该特征混合到任何类中 .
def currentTime
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 }
您无法通过特征添加构造函数 .
2 回答
只需替换
def currentTime
的实现即可生成org.joda.time.DateTime
实例,并将该特征混合到任何类中 .您无法通过特征添加构造函数 .