Отсутствие синтаксиса свойств в Java - PullRequest
5 голосов
/ 03 февраля 2009

C # имеет синтаксис для объявления и использования свойств. Например, можно объявить простое свойство, например так:

public int Size { get; set; }

Также можно добавить немного логики в свойство, например:

public string SizeHex
{
    get
    {
        return String.Format("{0:X}", Size);
    }
    set
    {
        Size = int.Parse(value, NumberStyles.HexNumber);
    }
}

Независимо от того, имеет ли он логику или нет, свойство используется так же, как поле:

int fileSize = myFile.Size;

Я не новичок ни в Java, ни в C # - я довольно часто использовал оба, и мне всегда не хватало синтаксиса свойств в Java. Я прочитал в этот вопрос , что «маловероятно, что поддержка свойств будет добавлена ​​в Java 7 или, возможно, когда-либо», но, честно говоря, я считаю, что это слишком много работы, чтобы копаться в дискуссиях, форумах, блогах, комментарии и JSR, чтобы выяснить, почему.

Итак, мой вопрос: кто-нибудь может подвести итог, почему Java вряд ли получит синтаксис свойства?

  • Это потому, что он не считается достаточно важным по сравнению с другими возможными улучшениями?
  • Существуют ли технические (например, связанные с JVM) ограничения?
  • Это вопрос политики? (например, «Я программирую на Java уже 50 лет, и я говорю, что нам не нужны никакие свойства steenkin!» )
  • Это случай велосипедных прогулок ?

Ответы [ 12 ]

0 голосов
/ 03 февраля 2009

- Это потому, что оно не считается достаточно важным по сравнению с другими возможными улучшениями?

Это мое предположение.

- Существуют ли технические (например, связанные с JVM) ограничения?

нет

Нет

- Это вопрос политики? (например, «Я программирую на Java уже 50 лет, и я говорю: нам не нужны никакие свойства Стинкина!»)

Скорее всего.

- Это случай велосипеда?

Э

Одна из основных целей Java состояла в том, чтобы язык был простым.

Из: Википедии

Java подавляет некоторые функции [...] для классов, чтобы упростить язык и предотвратить возможные ошибки и создание анти-шаблонов.

0 голосов
/ 03 февраля 2009

Это та же самая причина, по которой они ничего не меняют в Java - обратная совместимость.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...