-1

ボタンのグループからデータを取得するアクションリスナーがあります(ボタンごとに1つに分割するのが次です、ちょっと待ってください...)

これらのボタンのImageIconを変更する「reveal」メソッドを呼び出したいと思います。どのアイコンに変更するかを知るには、「reveal」が文字列配列にアクセスできる必要があります。このString配列は、revealと同じクラスのメソッドで作成され、別のクラスで渡されて処理された後、revealと同じクラスの別のメソッドに返されます。

String配列をreveal関数に渡すにはどうすればよいですか?作成されたクラスの最上位で文字列配列を公開しようとしました。ただし、正しく返されていないようで、revealがアクセスしようとすると、すべての値がnullになります。

4

1 に答える 1

0

コメントで述べたように、実際のコードを見るのは素晴らしいことですが、ここで何が起こっているのか理解していると思います. まず、わかりやすくするために、いくつかの名前を設定しましょう。クラス A を、String 配列を所有する (そして Reveal 関数を持つ) クラスとします。クラス B を String 配列の処理を行うクラスとします。

String 配列を処理のためにクラス B に渡す場合、次の 2 つのいずれかを確認する必要があります。

1) その関数から文字列配列を返す場合は、クラス A がクラス B 処理関数を呼び出すために使用する関数から、クラス A 内の文字列配列の値を設定するために必ずそれを使用してください。

// from class A
private String[] stringsToHealAllAils;
...
public void aFunctionThatNeedsProcessingWithDiscriminatingTaste()
{
    // instance of class B is called b
    stringsToHealAllAils = b.processThingy( stringsToHealAllAils );
}

この場合、クラス B の処理関数は、A からの文字列配列に基づいて、まったく新しい文字列配列を返す必要があります。また、クラス A の関数は、文字列配列の値を処理関数の戻り値に置き換える必要があります。

また

2) クラス B が所有する処理関数内でクラス A の String 配列を変更する場合 (以下のサンプル コードを参照)

public void processThingy( String[] thatLegendaryArray )
{
    // some amazing processing here
    thatLegendaryArray[superSpecialIndex] = someOtherVerySpecialString;
}

つまり、おそらくクラス B の処理関数内で配列にデータを入力しているということです。これも問題ありませんが、サンプル コードが示すように、クラス A 内から String 配列の値を設定する必要はありません (ala example 1)。

私が言っているのは、明らかに関数が null の山を取得している場合、文字列配列を適切に処理できていないと思います。これで解決しない場合は、何をしているかをより明確に示すコードを必ず投稿してください。私は解決策が手元にあると確信しています。

于 2013-02-16T03:14:16.803 に答える