我一直在创建一个Arraylist
作为公共(public)类,因为这就是我被教导的方式。当我在另一个不带变量的文档中引用 Arraylist 的功能时,例如:get()
、remove()
、size()
等。这意味着我每次都必须在公共(public)类中创建它。我是否必须每次都添加代码,因为目前我正在尝试创建 size()
,但需要一些帮助。
或者有没有办法让Arraylist
功能正常,而不需要每次都添加行。该代码应该有助于解释我的意思:
import java.util.ArrayList;
public class Question1 {
private ArrayList<Question1Entry> entries;
public Question1() {
entries = new ArrayList<Question1Entry>();
}
public void add( String name, String studentNumber, String courseName, String courseID, String houseNumber, String streetName, String town, String postcode ) {
entries.add(new Question1Entry(name, studentNumber, courseName, courseID, houseNumber, streetName, town, postcode ));
}
public void remove (int index ) {
entries.remove(index);
}
public Question1Entry get(int index) {
return entries.get(index);
}
//The variable I need help creating
public Question1Entry size(int index) {
return entries.size(index);
}
public String toString( ) {
StringBuffer temp = new StringBuffer();
for (int i = 0; i < entries.size(); ++i) {
temp.append( entries.get(i).toString() + "\n" );
}
return temp.toString();
}
}
有没有办法避免添加 get()
、size()
remove()
等?
谢谢:)
最佳答案
到目前为止您所使用的名为 delegation 。您可以继续重新创建每个方法并将其委托(delegate)给您的委托(delegate)对象(entries
)。许多IDE都具有快速创建您需要的委托(delegate)方法的功能。
Intellij : 来源 → 生成 → 委托(delegate)方法
Eclipse:代码 → 生成委托(delegate)方法
我还建议使用 inheritance就像 Mr. Polywhirl 的例子一样(尽管如果这个概念对您来说是新的,您也可以不使用泛型来实现)。最明显的好处是您只需定义一次方法,但真正的好处来自于将您的代码概括为适用于任何问题(而不仅仅是 Question1
)。
关于java - 在类中委托(delegate) ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49797217/