繁体   English   中英

是否可以#define Java中的类?

[英]Is it possible to #define a class in Java?

我正在使用ProGAL包。 有两个不同的类, ProGAL.geom2d.PointProGAL.geom3d.Point 两者都称为Point 当我导入一个时,我只能通过输入完整路径来使用另一个。 例如:

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?

用法如下:

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

不,这是不可能的,因为Java不允许预编译指令。

不可能,因为Java中没有#typedef#define (没有预分析器)。 您可以尝试编写另一个类来封装要重命名的类或只需要大量代码提交。

我想要注意,我不认为你应该尝试更改类的名称。 它的名字有一个原因。 如果你打算在另一个类中使用它,那么一个人知道他们正在使用的实际类是非常有用的。 我认为是良好的阅读/可用性。 我认为将烟幕放在不需要存在的地方是不好的。 这个名字足够描述。

答案是否定的 如此链接中所述, typedef#define关键字被接受为并发症,并在Java中删除,因为它们会降低代码的可读性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM