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

导入新包时类名冲突(java),java,class,lwjgl,Java,Class,Lwjgl,首先,我是java新手,所以我的问题可能很愚蠢,但我仍然需要一个答案:) 我有一个处理显示问题的类。我将其命名为“Display”,但问题是:我需要导入一个名为org.lwjgl.opengl.Display的类 当然,我的Display类语句中有以下错误: “显示”已在此编译单元中定义 当然,我可以重命名我的类,但是我想确定没有办法轻松地绕过这个问题 一般来说(因为使用像LWJGL这样的游戏库,我想我会有很多这样的东西),在我所有的类前面加前缀以避免类似的标签是不是更好 更新:类已在包中 Th

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

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

当然,我的Display类语句中有以下错误:

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

当然,我可以重命名我的类,但是我想确定没有办法轻松地绕过这个问题

一般来说(因为使用像LWJGL这样的游戏库,我想我会有很多这样的东西),在我所有的类前面加前缀以避免类似的标签是不是更好

更新:类已在包中


Thanx.

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

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


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

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

public class Foo {

private static class Display {...}

}

也将有助于解决问题。

@Cornelius:不要导入Display类,需要时使用完全限定名,它将编译。好的,我认为这不是一种正确的方法。Java的任何版本都有将完全限定名称别名为短名称的功能,这样就不必在任何地方都使用完全限定名称了吗?类似于
import org.lwjgl.opengl.Display的内容然后
OglDisplay display=new OglDisplay()
public class Foo {

private static class Display {...}

}