类名冲突导入新包(java)

时间:2011-09-25 17:29:32

标签: java class lwjgl

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

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

当然,我的Display类语句中出现此错误:

  

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

当然,我可以重命名我的班级,但我想确定没有办法轻易绕过这个问题。

一般来说(因为使用像LWJGL这样的游戏库,我想我会有很多这样的),为了避免使用类似的标签,我的班级前缀是否更好?

  

更新:该类已在包中。

package Graphics;

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

public class Display { ... }

感谢名单。

2 个答案:

答案 0 :(得分:23)

如果你不能重命名自己的类,这是最简单的,那么你可以通过不导入有问题的类而不是使用完全限定的包名来避免这种情况,例如

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

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

答案 1 :(得分:0)

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

public class Foo {

private static class Display {...}

}

也有助于解决问题。