В "Дженерики (обновлено)" Java учебник по адресу:Можно отключить автобоксинг Java?
http://docs.oracle.com/javase/tutorial/java/generics/types.html
определяет простой класс Box:
public class Box {
private Object object;
public void set(Object object) { this.object = object; }
public Object get() { return object; }
}
и заявляет:
Поскольку его методы принимают или возвращать Объект, вы можете передавать все, что захотите, при условии, что оно не является одним из примитивных типов.
Каждый примитив, который я передаю методу набора, работает без ошибки компиляции. Есть ли способ предотвратить автобоксинг, который автоматически обертывает примитив, если я действительно хочу его сломать? И в более общем плане: есть ли способ предотвратить автоматическое оповещение? Я использую Java 7.
Я ответил на этот вопрос, но вы можете объяснить, зачем вам это нужно? –
Предположительно, если вы сказали компилятору компилировать ожидающий источник из версии до автобоксинга, то он пропустит его. Опция компилятора '-source' позволяет указать исходную версию. –
Спасибо за ответ. Я пытался внимательно прочитать учебник по дженерикам, и мне показалось, что на самом деле нет ограничений на то, что вы можете передать методу set: примитивы просто преобразуются в Object (поэтому они * могут * быть переданы методу) и вернулся таким образом с get. Затем я задавался вопросом, существует ли какой-либо «пользовательский контроль» в этом процессе. – gcbound