Я знаю, что отражение может отражать объект в объект другого типа
Не совсем. Отражение используется для динамического доступа / изменения объектов во время выполнения.
Предположим, у вас есть класс Foo
, который вы можете создать программно с помощью экземпляра:
Object o = new Foo();
Но вы также можете создать экземпляр во время выполнения только с именем:
public Object createInstanceOf( String className )
throws InstantiationException,
IllegalAccessException {
return Class.forName( className ).newInstance();
}
Object o = createInstanceOf( "Foo" ) ;
В сущности, это отражение .
Оболочка может преобразовать тип примитива в объект
В общих чертах обертки просто ... хорошо оборачивают другой объект. В частности, для примитивов Java вы правы, обертки Java оборачивают примитивы, чтобы их можно было использовать как любой другой обычный объект, например, для передачи int объекту, который получает объект, который вам нужно будет использовать оболочку: 1026 *
public void somethingWith( Object o ) {}
....
int i = 1234;
somethingWith( new Integer( i ) );
До версии Java 1.5 вы не могли вызвать метод somethingWith
без необходимости явного создания экземпляра оболочки.
Сегодня с autoboxing компилятор сделает это за вас, и вы можете вызвать напрямую:
somethingWith( 1234 ) ;
Надеюсь, это поможет и не смущает вас больше.