Подтвердить что ты не робот

Почему ключевое слово const не используется в Java?

Возможный дубликат:
Почему в Java нет ключевого слова Constant?

Почему ключевое слово const не используется в Java?
Можете ли вы увидеть недостатки использования некоторого переходного константного или неизменяемого ключевого слова в синтаксисе Java или почему общий громоздкий подход был выбран?

Вы можете увидеть причины для закрытия запроса дает ли Sun какие-либо объяснения?

4b9b3361

Ответ 1

Можете ли вы увидеть причины закрытия запроса, дает ли Sun какие-либо объяснения?

Да. Sun предоставила 3 ​​причины, по которым они не будут действовать по запросу в запросе . Я цитирую:

"В настоящее время нет планов по добавлению этой функции на Java. Помимо ползучего фетуризма, мы видим следующие проблемы с этой функцией:

  • Добавление const теперь слишком поздно. Если бы это было добавлено из 1.0, ситуация могла быть иной.

  • Загрязнение Const: подход С++ требует всех методов const для маркировки ключевым словом const. Это означает, что большинство методы должны быть явно обозначены как const. Это имеет тенденцию загромождать все методы в С++.

  • Совместимость - очень важная особенность JDK. Возможно, классы коллекции должны быть изменены на указывают, что элементы являются const. Это было требуют, чтобы все существующие реализации обновлялись в таким же образом, эффективно нарушая все существующие не-JDK реализации интерфейсов коллекции. По аналогии, hashCode должен быть const, нарушая текущий реализация String."


UPDATE

Из любопытства я провел несколько минут, пробираясь по темам в списке рассылки Project COIN. В моем удивлении никто не удосужился предложить const. (Или, если они это сделали, я пропустил это.)

Так что или никто не заботится (достаточно) для этой идеи, или люди, обладающие достаточным опытом для разработки проекта COIN, признают, что нет никаких шансов, что он пройдет.

Ответ 2

Собственно, ссылка на Wikipedia, на которую вы ссылались, имеет ваш ответ:

Билет запроса на повышение для реализации корректности const существует в Java Community Process, но был закрыт в 2005 году на основе того, что было невозможно реализовать с обратной совместимостью.

Ответ 3

Он не используется, потому что он не имеет функции в Java. Я цитирую из Wikipedia:

Хотя зарезервировано как ключевое слово в Java, const не используется и не имеет функция.

Поэтому вместо этого следует использовать final.

Здесь - другой, может быть, более надежный источник.

Ответ 4

Использовать конечное ключевое слово..it сделает для вас то же самое, что и ключевое слово const