libreofficeのJavaコードを読んでいますが、よくわからないことが1つあります。メソッドupdateUI()はメソッドupdateUIを 2回呼び出し 、パラメーターとしてVector変数を渡しますが、このメソッドはパラメーターを受け入れません。誰でもこのパラメータが何をするのか説明できますか?updateUI()がこのように呼び出された場合:
UnoDataAware.updateUI();
それは文句を言って言います:
非静的メソッドは静的コンテキストから参照できません
libreofficeのJavaコードを読んでいますが、よくわからないことが1つあります。メソッドupdateUI()はメソッドupdateUIを 2回呼び出し 、パラメーターとしてVector変数を渡しますが、このメソッドはパラメーターを受け入れません。誰でもこのパラメータが何をするのか説明できますか?updateUI()がこのように呼び出された場合:
UnoDataAware.updateUI();
それは文句を言って言います:
非静的メソッドは静的コンテキストから参照できません
あなたが提供した2番目のリンクには別の方法があります:(203行目)
public static void updateUI(Collection dataAwares) {
for (Iterator i = dataAwares.iterator(); i.hasNext();)
((DataAware) i.next()).updateUI();
}
これは2回呼び出されているメソッドです。静的とは、呼び出す前にクラス名を指定する必要があることを意味します。あなたがそのクラスから離れていない限り。
Users.getFirstName() (例)
Cross-Reference が悪いと思います。探している方法は次のとおりです。
updateUI()はインスタンス メソッドであるため、インスタンスから呼び出す必要がありますが、updateUI(Collection dataAwares)は静的メソッドであり、クラスから直接呼び出されます。
そして同じソースから:
/** 199 * given a collection containing DataAware objects, 200 * calls updateUI() on each memebr of the collection. 201 * @param dataAwares a collection containing DataAwareオブジェクト。202*/
あなたは間違った線を見ています。
203行目を見てください。これが呼び出されているメソッドです。
これは呼び出される関数です:
public static void updateUI(Collection dataAwares)
いいえ
public void updateUI()