Junior
Šta su Wrapper klase (Wrapper classes) u Javi?
sobes.tech АИ
Одговор од АИ
Wrapper класе у Јави су класе које пружају објектно-оријентисан приказ примитивних типова података. Омогућавају коришћење примитивних вредности у контекстима где су потребни објекти, на пример, у колекцијама или при раду са мулти-тредингом.
Главне Wrapper класе:
ByteShortIntegerLongFloatDoubleBooleanCharacter
Примери употребе:
Користење примитивних типова:
// Примитивни тип
int x = 10;
Користење Wrapper класе:
// Wrapper класа
Integer y = new Integer(20); // Старији начин креирања
Integer z = 30; // Autoboxing (автоматска конверзија примитивног у објекат)
Конверзија између примитивних и Wrapper објеката:
- Autoboxing: Аутоматска конверзија примитивног у Wrapper објекат.
// Autoboxing int primitiveInt = 100; Integer wrapperInt = primitiveInt; - Unboxing: Аутоматска конверзија Wrapper објекта у примитив.
// Unboxing Integer wrapperInteger = new Integer(200); int primitiveInteger = wrapperInteger;
Предности Wrapper класа:
- Рад са колекцијама: Колекције (
List,Set,Map) чувају само објекте. - Рад са
null: Wrapper објекти могу имати вредностnull, за разлику од примитивних типова. - Пружа корисне методе: Wrapper класе имају методе за претварање у низове, поређење вредности итд. На пример,
Integer.parseInt(String s). - Рад са генерицима: Генерички типови раде само са објектима. Недостаци Wrapper класа:
- Потрошња меморије: Wrapper објекти заузимају више меморије од примитивних типова.
- Смањење перформанси: Аутоматска конверзија (autoboxing и unboxing) може благо смањити перформансе. Пример употребе у колекцији:
import java.util.ArrayList;
import java.util.List;
public class WrapperExample {
public static void main(String[] args) {
List<Integer> numbers = new ArrayList<>();
numbers.add(10); // Autoboxing
numbers.add(new Integer(20)); // Јасно креирање објекта
int firstNum = numbers.get(0); // Unboxing
System.out.println(firstNum);
}
}