2017-10-23 24 views
0

私は多くの他のモジュールに依存するモジュールAを持っています。とにかく変更することはできません。このモジュールでは、メソッドgetCellValue()が宣言されています。モジュールAはモジュールBの依存関係です。後者のモジュールは変更可能です。重要なのは、前述のメソッドがモジュールBから呼び出されていないということです。モジュールBのgetCellValue()メソッドをオーバーライドできますか?モジュールBのモジュールのAメソッドを上書きできますか?

テックスタック:春4.1.6 - Javaの8

+1

「オーバーライド」とは何ですか? – Stultuske

+0

'getCellValue()'メソッドがプライベートでない限り、それをモジュールBで上書きすることができます。ただし、上書きされたバージョンは、Bのインスタンスが使用されている場合にのみ使用されます。 Aが使用されているすべての発生、Aの方法が使用されます。 – Korashen

+0

'B'は' A'を拡張し、 'getCellValue'は' final'ではありません。それを試しましたか? – BackSlash

答えて

3

方法を囲むクラスがfinalでない場合は、それを拡張し、@Override方法することができます。元のクラスが挿入されたすべての場所で拡張クラスを注入し、オーバーライドされた動作が呼び出されます。

+0

これは一般的にはうまくいきますが、問題はメソッドがモジュールBによって呼び出されていないことです。私はそれに応じて質問を更新しました。 –

0

モジュールBがモジュールAに依存しない場合は、Bモジュールとしてメソッドまたはクラスを呼び出すことはできません。あなたのコードをモジュールBからコンパイルすると、BがAへのアクセス権を持っていないので、モジュールAからのアーティファクトのjarファイルはありません。

呼び出しメソッドが必要だが依存関係からアクセスできない場合は、デザインを確認してください。

関連する問題