我正在尝试访问数组列表的当前索引,但无法弄清楚如何在以下方法中执行此操作:
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;
}
}
答案 0 :(得分:1)
我猜你getNextMessage()
的第一行应该是:
String s = getMessageArray().get(index);
您班上没有getMessageArray(int)
这样的方法。它是带有0-arg的方法,返回ArrayList
,您可以使用List#get(int)
方法访问某个索引处的值。
实际上,您可以直接在该方法中访问messageArray
,因为它只在同一个类中。因此,该行可以更好地编写为:
String s = messageArray.get(index);
现在,假设您在获取该索引处的值和返回该值之间没有做任何事情,除了递增索引之外,您可以将方法缩短为一行:
public String getNextMessage(){
return messageArray.get(index++);
}
答案 1 :(得分:1)
正如我在之前的回答中写的那样
public String getNextMessage(){
String s = messages.get(indx);
indx++;
return s;
}
但是,您似乎更改了从
访问列表的部分String s = messages.get(indx);
到
String s = getMessageArray(index);
您的版本无法工作的原因是,您正在尝试调用名为getMessageArray(index)的方法,该方法返回ArrayList对象本身,即ArrayList。你真正想要做的是调用ArrayList类的get() - 方法。
您已在班级
中声明了一个名为消息的变量private ArrayList<String> messages;
您可以在此处看到消息的类型为 ArrayList 。 ArrayList有一个名为 get(int index)的方法,它检索指定索引处的元素。
您可以按照我在本答案开头所写的方式调用此方法。
作为参考,您可以查看arraylist here上的所有可用方法。
答案 2 :(得分:0)
而不是
getMessageArray(index);
写
getMessageArray.get(index);
首先必须获取数组列表,然后指定要获取的索引。