0

Eclipse を使用して、自分の仕事のために Java コードを更新する作業を行っています。このプロジェクトには、プロジェクト フォルダー内の「resources」フォルダーに格納された JAR ファイルがあり、メイン クラスによってインポートされます。この JAR ファイルには、別のクラス内で使用する必要があるクラスが含まれています。したがって、インポートステートメントは次のようになります。

import pkg.Class.InnerClass;

機密保持のため、名前を実際にオンラインで公開することはできません。この InnerClass にはメソッドがあり、これを setState(boolean b) と呼びます。メインクラスでは、このメソッドを使用する必要があります...しかし、入力すると、呼び出しの下に赤い線が表示され、エラーメッセージが表示されます。

"The method setState(boolean) is undefined for the type Class.InnerClass."

これは明らかに誤りです!InnerClass の他のほとんどすべてのメソッドは正常に機能し、この特定のクラスでのみエラーになるようです。ビルド パスの構成を再確認しましたが、異常はありません。JAR ファイルを変更することはできませんが、逆コンパイラ プラグインを使用して内容を確認できます。誰かが私が知らないことを知っていますか、または誰かが以前にこの問題に遭遇し、何とかそれを回避できましたか?

編集:これは Class.java ファイルがどのように見えるかのスケッチです:

package pkg;

import ...;

public class Class {

    public class InnerClass {

        public void setState( boolean paramBoolean ) {

            ...

        }

        public void setOtherState( boolean paramBoolean ) {

            ...

        }

    }

}
4

1 に答える 1

0

これは、問題が本当に Eclipse に関係しているのか、JAR ファイルに問題があるのか​​を判断するためのテストです。

  • Eclipse を終了し、お気に入りのテキスト エディターを起動します。
  • 内部クラスで「欠落」メソッドを使用する小さなテスト クラスを作成します。
  • コマンドを使用してコマンド ラインからコンパイルしjavac、コンパイル クラスパスに JAR を指定します。
  • 次に、それを Eclipse ワークスペースにコピーし、そこでコンパイルしてみてください。

これにより、問題がどこにあるかについての手がかりが得られるはずです。

于 2012-06-14T15:06:06.850 に答える