1

WebSphere Integration Developer 7.0 で作業しているプロジェクトがあり、別のパッケージから作成したばかりのパブリック メソッドを参照しようとしています。新しいメソッドが含まれているクラスに import ステートメントが含まれています。

クラスのインスタンスを作成して新しいメソッドを呼び出そうとすると、標準の「メソッド 'x' は型 'y' に対して未定義です」というコンパイラ エラーが発生し、新しいメソッドが認識されていないことが示されます。

私にとって本当に奇妙なのは、F3 を押してクラス インスタンスの宣言を開くと、.java ファイルではなく .class ファイル内のクラス宣言に移動することです。クラスインスタンスから他のいくつかの非静的メソッドを呼び出してみましたが、それらは認識され、それらの宣言を開いたときに .class ファイルに移動しました。このクラスの .class ファイルと .java ファイルが同じディレクトリにあります。

プロジェクトをクリーンアップして再構築し、影響があるかどうかを確認しましたが、それでも同じ動作が見られます。

私の質問は、IDE がクラスとメソッドの宣言を .java ファイルではなく .class ファイルで開くのはなぜですか? これまでに見たことがない - この場合、WID 内で予想される動作でしょうか、それとも私の環境に問題があることを示唆していますか?

4

1 に答える 1

2

Why the IDE opens the .class file

それは、IDE がbuild path.

これは非常に一般的な動作です。

たとえば、 projectFと project の2 つのプロジェクトがあるとしますB

Project `F` - front end
Project `B` - back end

現在、そのコンパイルは にF依存していますが、独立してコンパイルできます。BB

したがって、 をビルドするFには、まずビルドBしてから、ビルドの一部として生成されたアーティファクトを のビルド パスにFコピーFします。Bのビルドによって生成されます。

これで、 を構築できFます。ここでF実際に指し示しているのは、ソースではなく一連のクラス ファイルです。

Bそして、 from -のファイルにアクセスしようとすると、FIDE がインテリジェントに.classファイルを開きます。

于 2014-10-02T16:16:37.643 に答える