7

まず第一に、私は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 { ... }

ありがとう。

4

2 に答える 2

31

独自のクラスの名前を変更できない場合は、これが最も簡単ですが、問題のあるクラスをインポートせず、代わりに完全修飾パッケージ名を使用することでこれを回避できます。

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

逆に、独自のクラスをパッケージに入れ、デフォルトのパッケージを決して使用しないようにする必要があります。これにより、同じ方法を適用して独自のクラスを明確にすることができます。

于 2011-09-25T17:32:47.790 に答える
0

これは、Java クラス名とインポート ライブラリ名が同じ場合に発生します。あなたの場合、スキャナはライブラリではなくクラス名を参照しています。クラス名を別のものに変更すると、エラーを解決する最も簡単な方法になります。

public class Foo {

private static class Display {...}

}

問題の解決にも役立ちます。

于 2016-10-13T15:17:33.393 に答える