导入新包时类名冲突(java)

发布于 2024-12-06 07:21:09 字数 581 浏览 1 评论 0原文

首先,我是java新手,所以我的问题可能很愚蠢,但我仍然需要答案:)

我有一个处理显示问题的类。我将其命名为“Display”,但问题是:我需要导入一个名为 org.lwjgl.opengl.Display 的类。

当然,我的 Display 类语句有此错误:

“Display”已在此编译单元中定义

,当然,我可以重命名我的类,但我想确保没有办法轻松规避这个问题。

一般来说(因为使用像 LWJGL 这样的游戏库,我想我会有很多这样的库),为我的所有类添加前缀以避免类似的标签是一个更好的主意吗?

更新:该类已经在包中。

package Graphics;

import org.lwjgl.LWJGLException;
import org.lwjgl.opengl.Display;
import org.lwjgl.opengl.DisplayMode;

public class Display { ... }

谢谢。

First of all, I am a new to java, so my question might be stupid but i still need an answer :)

I have a class that handle display matters. I have named it "Display", but the problem is : I need to import a class called org.lwjgl.opengl.Display.

Of course, I have this error at my Display class statement :

"Display" is already defined in this compilation unit

And of course, I can rename my class, but i'd like to be sure there is no way to easily circumvent this issue.

In a general way (because using a game library such as LWJGL, I guess i will have plenty of this), is it a better idea to prefix all my class to avoid similar label ?

Update : The class is already in a package.

package Graphics;

import org.lwjgl.LWJGLException;
import org.lwjgl.opengl.Display;
import org.lwjgl.opengl.DisplayMode;

public class Display { ... }

Thanx.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

紙鸢 2024-12-13 07:21:09

如果您无法重命名自己的类(这是最简单的),那么您可以通过不导入有问题的类并使用完全限定的包名称来规避此问题,例如

org.lwjgl.opengl.Display display = new org.lwjgl.opengl.Display()。

相反,您应该将自己的类放在包中,并且永远不要使用默认包,这样就可以应用相同的方法来消除您自己的类的歧义。

If you can't rename your own class, which would be the easiest, then you can circumvent this by not importing the offending class and instead using the fully qualified package name, e.g

org.lwjgl.opengl.Display display = new org.lwjgl.opengl.Display().

Conversely, you should put your own class in packages and never use the default package, so that it's possible to apply the same method to disambiguate your own classes.

云裳 2024-12-13 07:21:09

当您的 java 类名和导入库名称相同时,就会发生这种情况。在您的情况下,扫描仪是指类名而不是库。将类名更改为其他名称将是解决该错误的最简单方法。

public class Foo {

private static class Display {...}

}

也将有助于解决问题。

This happens when your java class name and importing library name is same. In your case Scanner is refer to the class name not for the library. Changing the class name to something else will be the simplest way to solve the error.

public class Foo {

private static class Display {...}

}

will also help to solve the issue.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文