Какую функцию эти аннотации Java выполняют?

Ваш код не работает, потому что RandomIndex всегда одинаков, если он 7, он вернет undefined, поскольку splice изменяет исходный массив, удаляя найденные House,

[1111 ] измените RandomIndex на функцию, вызываемую каждый раз, чтобы она генерировала новый индекс, используя новую длину массива:

var RandomIndex = () => Math.floor(Math.random() * HousesArray.length)

//Houses Array:
var HousesArray = [
  'Stark',
  'Lanister',
  'Greyjoy',
  'Barathion',
  'Arryn',
  'Tyrell',
  'Martell',
  'Targaryen'
];

//Houses Variables:
var house1 = {}
var house2 = {}
var house3 = {}

//Random House Generator
var RandomIndex = () => Math.floor(Math.random() * HousesArray.length)
var RandomElement = HousesArray[RandomIndex()]

//3 Players Generator:
house1 = RandomElement
console.log(house1)

HousesArray.splice(HousesArray.indexOf(house1), 1)
RandomElement = HousesArray[RandomIndex()]
house2 = RandomElement
console.log(house2)

HousesArray.splice(HousesArray.indexOf(house2), 1)
RandomElement = HousesArray[RandomIndex()]
house3 = RandomElement
console.log(house3)

7
задан Bijou 30 April 2009 в 19:47
поделиться

3 ответа

Это метаданные на уровне источника. Это способ добавления информации в код, который не является кодом, и который легко обрабатывается машиной.

В вашем примере они используются для настройки объектно-реляционного отображения для этого типа сущности. Это говорит о том, что, например, поле id должно быть первичным ключом для этого объекта, а firstName, lastName и hireDate должны храниться в базе данных. (Чтобы отличить эти поля от некоторого переходного состояния объекта.)

Поддержка GAE для JDO должна знать, какие объекты вы попытаетесь сохранить в базе данных. Он делает это, просматривая классы в вашем коде, ища те, которые аннотированы с помощью @PersistenceCapable.

Обычно они используются для замены там, где вы ' раньше использовать внешние файлы конфигурации; стандартная библиотека Java имеет инструменты для чтения аннотаций в вашем коде, что значительно облегчает их обработку, чем развертывание вашего собственного файла конфигурации, и предоставляет вам бесплатную поддержку IDE.

9
ответ дан 7 December 2019 в 01:25
поделиться

Аннотации можно обрабатывать с помощью API инструмента обработки аннотаций , чтобы автоматически генерировать шаблонный код.

1
ответ дан 7 December 2019 в 01:25
поделиться

Я думаю, что они происходят из API Java Data Objects . Это API, который частично совпадает с тем, что EJB3 должен выполнить. Те же понятия, другой синтаксис и инструменты.

Если вы не знакомы с аннотациями в целом, посмотрите учебник по Java .

0
ответ дан 7 December 2019 в 01:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: