0

libreofficeのJavaコードを読んでいますが、よくわからないことが1つあります。メソッドupdateUI()はメソッドupdateUIを 2回呼び出し 、パラメーターとしてVector変数を渡しますが、このメソッドはパラメーターを受け入れません。誰でもこのパラメータが何をするのか説明できますか?updateUI()がこのように呼び出された場合:

UnoDataAware.updateUI(); 

それは文句を言って言います:

非静的メソッドは静的コンテキストから参照できません

4

6 に答える 6

1

あなたが提供した2番目のリンクには別の方法があります:(203行目)

 public static void updateUI(Collection dataAwares) {
            for (Iterator i = dataAwares.iterator(); i.hasNext();)
                ((DataAware) i.next()).updateUI();
         }

これは2回呼び出されているメソッドです。静的とは、呼び出す前にクラス名を指定する必要があることを意味します。あなたがそのクラスから離れていない限り。

Users.getFirstName() (例)

于 2011-05-30T12:20:16.660 に答える
1

Cross-Reference が悪いと思います。探している方法は次のとおりです。

DataAware.updateUI(Collection dataAwares)

于 2011-05-30T12:22:09.490 に答える
0

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*/

于 2011-05-30T12:19:57.300 に答える
0

あなたは間違った線を見ています。

203行目を見てください。これが呼び出されているメソッドです。

于 2011-05-30T12:20:03.290 に答える
0

これは呼び出される関数です:

public static void updateUI(Collection dataAwares)

いいえ

public void updateUI()

于 2011-05-30T12:23:02.243 に答える