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'也可以使用。 –