1

配列リストの現在のインデックスにアクセスしようとしていますが、次の方法でアクセスする方法がわかりません。

public String getNextMessage(){
    String s = getMessageArray(index);
    index++;
    return s;
}

「getMessageArray」でエラーが発生し、解決方法がわかりません。このメソッドは Arrays[] で機能しましたが、ArrayList でそれを行う方法がわかりません。クラスファイル全体は次のとおりです。

package com.game.main;

import java.util.ArrayList;

public class Message {

private int index;
private ArrayList<String> messageArray;

private String intro = "Welcome.";

public Message() {
    messageArray = new ArrayList<String>();
    messageArray.add(intro);
}

public String getNextMessage(){
    String s = getMessageArray(index);
    index++;
    return s;
}

public ArrayList<String> getMessageArray() {
    return messageArray;
}

public void setMessageArray(ArrayList<String> messageArray) {
    this.messageArray = messageArray;
}
}
4

3 に答える 3

1

最初の行は次のようにgetNextMessage()なるはずです。

String s = getMessageArray().get(index);

getMessageArray(int)あなたのクラスには次のようなメソッドはありません。ArrayListこれは、メソッドを使用してList#get(int)特定のインデックスの値にアクセスするを返す 0-argのメソッドです。

messageArray実際、同じクラスにのみあるため、そのメソッドで直接アクセスするだけです。したがって、その行は次のように記述できます。

String s = messageArray.get(index);

ここで、そのインデックスで値をフェッチしてからその値を返すまでの間に何もしていないことを考えると、インデックスをインクリメントすることは別として、メソッドをワンライナーに短縮できます。

public String getNextMessage(){
    return messageArray.get(index++);
}
于 2013-06-08T20:27:36.800 に答える
0

それ以外の

getMessageArray(index); 

書きます

getMessageArray.get(index);  

最初に配列リストを取得してから、取得するインデックスを指定する必要があります。

于 2013-06-08T20:26:13.320 に答える