特定
case class Fruit(name: String, colour: String)
Run Code Online (Sandbox Code Playgroud)
我想弃用案例类字段colour.
我试图通过使用Scala来实现前者 @deprecated
case class Fruit(name: String, @deprecated("message", "since") colour: String)
Run Code Online (Sandbox Code Playgroud)
和Java @Deprecated注释
case class Fruit(
name: String,
/* @Deprecated with some message here */
@(Deprecated @field)
colour: String
)
Run Code Online (Sandbox Code Playgroud)
不幸的是,我无法colour在任何情况下弃用,我无法找到任何资源.
实际上,我可以使用其他方法实现相同的任务,例如将我的case类放宽到普通类并提供getterfor colour并使后者弃用,但我想知道是否实际上不可能弃用case类字段而且 -最终 - 原因.
谢谢.
UPDATE
正如迈克正确指出的那样,colour是一个案例类的必填字段,因此设置此属性的意义deprecated是有争议的.我想弃用colour,因为我现在提供colour来自另一个构造的信息,我想让用户知道这colour不是获取该信息的正确实例,我将Fruit在下一个版本中将其删除.
到目前为止,我只是警告用户不要colour从Fruit属性中获取信息,暂时,我并不关心他们是否可以创建带有颜色信息的水果实例.
更新2
正如阿列克谢所说,我在编译时确实有被弃用的警告.但是为什么我不能在IDE代码中观察到弃用以及我弃用某个方法呢?我期待以下的东西
val fruit = Fruit("peer", "green")
val colour = fruit. …Run Code Online (Sandbox Code Playgroud)