Java не имеет возможности динамически добавлять свойства. Он также не имеет возможности динамически создавать классы во время выполнения или изменять их во время выполнения. Ява строго и статически типизирована. Лучшее, что вы можете сделать, это поместить эти свойства в Map
или аналогичный.
Редактировать: Хорошо, по-видимому, некоторые разъяснения в порядке. ОП особо упомянул GAE, над которым none из этих методов будет работать, но я упомяну их, поскольку некоторые, кажется, исключают их отсутствие.
API компилятора Java (Java 6+) позволяет компилировать классы Java во время выполнения. Технически вы можете написать исходный файл Java, чтобы он выглядел именно так, как вы хотите, скомпилировать и загрузить его.
Библиотеки байт-кода Java могут переписывать классы во время выполнения. Это используется такими библиотеками, как JPA (и другие). Вы можете изменить классы таким образом.
Однако OP ссылается на: а) в отношении работы над GAE и б) более подробно в порядке того, как Javascript позволяет изменять классы или конкретные экземпляры во время выполнения путем динамического добавления, удаления или изменения свойств. Java, конечно, этого не делает и, в частности, не использует GAE.
Вышеприведенное не является исключением из этого, так же как приведение класса к char *
в C ++, так что вы можете читать приватные члены, не означает, что C ++ не имеет закрытых членов. По сути, вы обходите среду выполнения Java с обоими этими методами, даже если они являются частью Java.