使用超类java中的方法显示arrayList中的元素
我试图在main方法中打印出列表中的元素。但是我有一个问题,因为Eclipse说我在超类中实现的方法没有为我的类型定义。 有一个超类,还有三个扩展了这个超类,我已经导入了java.util.List和java.util.ArrayList; 我之所以需要实现这个方法,是因为我的导师问我,不过我知道在主方法中只使用for循环就足够了。 超类:使用超类java中的方法显示arrayList中的元素,java,eclipse,inheritance,Java,Eclipse,Inheritance,我试图在main方法中打印出列表中的元素。但是我有一个问题,因为Eclipse说我在超类中实现的方法没有为我的类型定义。 有一个超类,还有三个扩展了这个超类,我已经导入了java.util.List和java.util.ArrayList; 我之所以需要实现这个方法,是因为我的导师问我,不过我知道在主方法中只使用for循环就足够了。 超类: import java.util.ArrayList; import java.util.List; public class Figura {
import java.util.ArrayList;
import java.util.List;
public class Figura {
private int x;
private int y;
private String name;
private int index;
public Figura (String name, int x, int y) {
this.name = name;
this.x = x;
this.y = y;
}
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public int getY() {
return y;
}
public void setY(int y) {
this.y = y;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void show(Figura p) {
System.out.println(p.toString());
}
public void showElements (List <Figura> m) {
Figura p = m.get(index);
for (int i = 0; i < m.size(); i++){
System.out.println(m.get(i));
}
}
}
但是它也不起作用,并且在线程“main”java.lang.ClassCastException中显示了错误异常:java.util.ArrayList不能转换为zadaniedomoweZadanie1。图a请帮忙 kolekcje是对
ArrayList
的引用。方法showElements
是对Figura
对象的方法
您正试图访问ArrayList
上的showElements
,但该列表不可用
您将能够在图a
实例上访问它,如:
kolekcje[0].showElements(kolekcje);
此外,基于显示元素正在做什么,您可能需要考虑使其静态并访问它:
Figura.showElements(kolekcje);
为了能够调用
showElements
方法,您需要在Figura
对象上调用它。所以
kolekcje.showElements(kolekcje);
将不起作用,因为kolekcje是一个列表
,而不是图
因为您想显示Figura
s的列表,而不仅仅是一个;您最好将showElements
方法设置为static。你可以这样称呼它:
Figura.showElements(arrayOfFiguras);
图a.showElements()
//显示图形列表中的所有项目
公共静态void showElements(列表m){
对于(int i=0;i
您正在对ArrayList而不是Figura对象调用showElements()
方法。对于这个问题有两种解决方案,在我看来,更好的方法是使方法静态化。详情如下:
public static void showElements (List <Figura> m) {
Figura p = m.get(index);
for (int i = 0; i < m.size(); i++){
System.out.println(m.get(i));
}
致:
将方法设置为静态非常重要,因为showElements()
方法与调用它的Figura对象的实例完全无关。但是,它完全取决于您传递的列表
您可以阅读更多关于为什么使用静态方法的信息。为什么方法
showElements
在Figura
类中?这不符合格齐·杰斯泽·马·比奇的意思吗?W innym公共古典音乐:我的音乐是从音乐到音乐。zrobićjąstatyczną,albo stworzyćklasąFiguraContainer
która ma listęobiektówFigura
+metody kt ore operująna liście jakshowElements
。EN:如果必须使用该方法,可以将其设置为静态,或者创建一个FiguraContainer
类,其中包含一个list+几个方法,可以对该列表进行操作,如showElements
。好的,明白了。如果需要调用某些特定于列表的方法,我将创建一个单独的类。非常感谢。天机!
Figura.showElements(arrayOfFiguras);
// Display all the items of a Figura List
public static void showElements (List <Figura> m) {
for (int i = 0; i < m.size(); i++){
System.out.println(m.get(i));
}
}
public static void showElements (List <Figura> m) {
Figura p = m.get(index);
for (int i = 0; i < m.size(); i++){
System.out.println(m.get(i));
}
kolekcje.showElements(kolekcje);
Figura.showElements(kolekcje);