1
在Scala 2.10(以及之前)有一个很好的避免弃用警告的方法是invoking the deprecated method from a deprecated local def。不幸的是,它在Scala 2.11中不起作用。有其他选择吗?绕过Scala 2.11中的弃用警告2.11
在Scala 2.10(以及之前)有一个很好的避免弃用警告的方法是invoking the deprecated method from a deprecated local def。不幸的是,它在Scala 2.11中不起作用。有其他选择吗?绕过Scala 2.11中的弃用警告2.11
从this Scala issue comment,我们可以定义调用API已过时的过时的类/特性的方法,并有配套的对象为该类扩展它没有一个警告:
scala> @deprecated("", "") def foo = 0
foo: Int
scala> object Test { @deprecated("", "") class Coral { def fooForwarder = foo }; object Coral extends Coral }
defined object Test
scala> Test.Coral.fooForwarder
res1: Int = 0
这是没有必要窝'Coral'在'Test'中,就像旁注一样。 – sschaef
现在,既然你“正式”宣布了这一点,我想没有人能够摆脱那种行为了。该错误已成为一个功能。 – sschaef
@sschaef 1.与链接的问题评论相比,这个“官方”更少,因为谁制作了它,并且专门因为这个工作流程而关闭了票据。 2.在问题中链接的2.11之前的解决方法已被删除,尽管在一个SO答案中也提到了这一点(并且在我看来更有意义)。 3.'Test'中的包装只是为了让他们成为REPL的同伴,':paste'也可以使用。 –