java - 是否可以在 Java 中#define 一个类?

标签 java class preprocessor

我正在使用 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 中没有 #typedef#define(没有预解析器)。您可以尝试编写另一个类来封装您想要重命名的类,或者只是有很多代码注释。

我确实想指出,我认为您不应该尝试更改类的名称。它有它的名字是有原因的。如果您打算在另一个类(class)中使用它,那么了解他们正在使用的实际类(class)对一个人来说真的很有用。 This 我认为是很好的可读性/可用性。我认为在不需要烟幕的地方放置烟幕是不好的。该名称具有足够的描述性。

关于java - 是否可以在 Java 中#define 一个类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23768527/

相关文章:

java - 如何使 log4j error() 调用在 jUnit 测试中抛出异常?

ruby - Ruby 中有类无关的方法吗?

inheritance - Fortran 预处理器指令用法

machine-learning - 有没有办法在 scikit-learn 中保存预处理对象?

qt - 在QT中,如何像预处理器一样区分调试和发布

java - 多核 CPU 上的单线程 Node.js 与 Java (Tomcat)

Java JNA 聚焦特定窗口

java - Java中的综合类

javascript - SVG 中的多个类

java - 在 Java Gradle 项目中设置资源文件夹