2013-08-21 3 views
-2

Я понимаю, что есть ряд проблем, которые мы имеем с этим во время компиляции в предыдущих языкахПочему в java нет заголовков?

как, например ::

#define PI_PLUS_ONE (3.14 + 1) 
x = PI_PLUS_ONE * 5; // a line of code 

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

Каковы причины (основные) позади ограничения этих заголовков в java?

Благодарим за помощь!

+0

Возможный дубликат http://stackoverflow.com/questions/4763692/java-preprocess-phase –

+0

В Java нет заголовков '# define'. Если вы хотите определить что-либо по имени, создайте константу: общедоступную статическую конечную переменную. Java поддерживает предварительную обработку кода, но не так, как у C. –

+0

. Вопросы, подобные этим, должны быть заданы Джеймсу Гослину или одному из ранних разработчиков Java, иначе мы просто догадываемся о том, что они, возможно, думали , Голосование закрывается, как в основном, на основе мнения. –

ответ

2

Существует предварительная обработка на Java, а не тип, который вы описываете. Рассмотрим шаблоны Hibernate или Proxy/Decorator, которые доступны на Java с помощью инструментария байт-кода и т. Д. Это предварительная обработка, адаптированная для предприятия.

+0

Я бы скорее назвал эту пост-обработку ... –