2014-05-20 5 views
1

Я использую ProGAL упаковка. Существует два разных класса: ProGAL.geom2d.Point и ProGAL.geom3d.Point. Оба они называются Point. Когда я импортирую один, я могу использовать другой, набрав полный путь. Например:Можно ли #define класс в Java?

import ProGAL.geom3d.Point; 
//... 
Point pointIn3D = new Point(1,2,3); 
ProGAL.geom2d.Point pointIn2D = new ProGAL.geom2d.Point(4,5); 

Я хочу использовать что-то вроде

#define ProGAL.geom3d.Point point3d 
#define ProGAL.geom2d.Point point2d 

Так же, как и в C++. Возможно ли это с Java?

Usage будет, как:

point3d pointIn3D = new point3d(1,2,3); 
point2d pointIn2D = new point2d(1,2,3); 
+2

Нет, это невозможно. – lpratlong

+2

Нет, это невозможно. – yshavit

+0

К сожалению, в Java нет даже 'typedef', не говоря уже о '# define'. – arshajii

ответ

1

Нет его возможности, как нет #typedef или #define в Java (без подготовки). Вы можете попробовать написать еще один класс, чтобы инкапсулировать тот, который вы хотите переименовать, или просто иметь много кодов.

Я хочу отметить, что я не думаю, что вы должны попытаться изменить название класса. У этого есть свое имя по причине. Если вы собираетесь использовать его в другом классе, для человека действительно полезно знать фактический класс, с которым они работают. Это Я думаю, хорошо читать/юзабилити. Я не думаю, что это хорошо, чтобы надеть дымовые экраны, где их не нужно. Имя достаточно наглядно.

1

Нет, это не возможно, так как Java не позволяет инструкции прекомпиляции.

1

Ответ нет. Как указано в this link, typedef и #define ключевые слова принимаются как осложнения и удаляются на Java, потому что они снижают читаемость кода.

+0

вы должны принять собственный ответ :) также см. Мое редактирование – secretformula

+1

Я могу принять его через 2 дня :) Ваше редактирование действительно полезно. Ваш ответ будет принят, сэр – padawan

+0

@ OnurÇağırıcı Из того, что я слышал, это * возможно иметь '# define' и запускать код через препроцессор C, но это, вероятно, больше хлопот, чем того стоит – awksp

Смежные вопросы