Можем ли мы назвать String как класс-оболочку? - PullRequest
6 голосов
/ 06 июля 2011

Классы Wrapper используются для «обертывания» типов данных примитивов в объекты, чтобы они могли быть включены в действия, которые повторно создаются для объектов. Класс String оборачивает строковые литералы в объект.

В этом сценарии мы можем назвать String как класс-оболочку?

Ответы [ 6 ]

9 голосов
/ 06 июля 2011

Согласно википедии , (примитивный) класс-оболочка в Java является одним из тех восьми классов, которые переносят (= один) примитивное значение. String wraps a char[], поэтому в соответствии с этим это not (примитивный) класс-обертка.

Кроме того, String не предназначен для переноса или для украшения массива символов. String был разработан для моделирования строки, последовательности символов, и в текущей реализации используется внутренний char[]. Но Sun также могла бы использовать длинную byte[] с подсказкой кодировки символов , коллекцию или что-то родное. Это не имеет значения.

Это отличается для примитивных оболочек: они были разработаны только для обертывания примитива, чтобы адаптировать Java-примитив к java.lang.Object.

7 голосов
/ 06 июля 2011

Нет. String не является классом-оболочкой, просто потому, что нет параллельного примитивного типа, который он переносит.

Из вики:

Примитивный класс-оболочка в Java язык программирования один из восьми классы, представленные в java.lang пакет для предоставления методов объекта восемь примитивных типов

1 голос
/ 06 июля 2011

Нет, строка не переносит буквальное значение.Литерал дает вам другой способ создания объекта String.Но сам литерал является объектом, поэтому вы можете делать такие вещи:

System.out.println("Hello world".toUpperCase());

Не то, чтобы вы хотели это сделать.

1 голос
/ 06 июля 2011

Строка - это представление последовательности символов, но не обязательно «обертка». Автобокс и распаковка, например, не применяются к String. Но они применимы к примитивам, таким как int long и т. Д.

0 голосов
/ 27 декабря 2013

Нет, мы не можем вызывать строку как класс-оболочку. Потому что люди не включали строку в классы-оболочки.

0 голосов
/ 06 июля 2011

Условно нет, поскольку он не оборачивает один из восьми примитивов, но я не думаю, что было бы больно называть это так.

...