2015-05-23 2 views

ответ

1

С 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 
+0

Не нужно гнездиться 'Coral' в «Тесте», как в качестве примечания. – sschaef

+0

Теперь, поскольку вы «официально» объявили об этом, я думаю, никто больше не сможет избавиться от этого поведения. Ошибка стала особенностью. – sschaef

+0

@sschaef 1. Это менее «официальное», чем связанный комментарий к проблеме, учитывая, кто его сделал, и билет закрывается специально из-за этого ресурса. 2. Обходное решение до 2.11, связанное с вопросом, было устранено, несмотря на то, что оно также упоминается в ответе SO (и, на мой взгляд, имеет гораздо больший смысл). 3. Обертка в 'Test' заключается в том, чтобы сделать их компаньонами в REPL,': paste' также можно использовать. –