所以我有两个 Java 类。有类 Mitarbeiter
和类 MitarbeiterListe
。
Mitarbeiter
生成带有 id
和 name
的对象 Mitarbeiter
。 Mitarbeiter
应保存在一个数组中,该数组在 MitarbeiterListe
类的构造函数中初始化。
我编写了一个方法getSize()
,它应该返回数组中保存的Mitarbeiter
的数量。
不幸的是,我无法在 main()
中使用 getSize()
。它给了我错误:
Cannot invoke getSize() on the array type MitarbeiterListe[]
代码:
/*********************MITARBEITERListe********************/
public class MitarbeiterListe {
static Mitarbeiter[] liste;
public MitarbeiterListe(int index) {
liste = new Mitarbeiter[index];
}
public static int getSize() {
int size =0;
for(int i=0; i< liste.length; i++) {
if(liste[i]!= null) {
size++;
}
}
return size;
}
}
/**********************MITARBEITER************************/
public class Mitarbeiter extends Main {
private int id;
private static int idMax =1;
private String name;
public Mitarbeiter(String name) {
id = idMax++;
this.name = name;
}
}
/**********************MAIN************************/
public class Main {
public static void main(String[] args) {
Mitarbeiter m1 = new Mitarbeiter("Tim");
Mitarbeiter m2 = new Mitarbeiter("Anton");
MitarbeiterListe l1[] = new MitarbeiterListe[5];
//Here I'll get the Error
System.out.println(l1.getSize());
}
最佳答案
您在 System.out.println(l1.getSize());
处收到错误
因为您的 l1
是一个数组实例,因为您这样做:MitarbeiterListe l1[] = new MitarbeiterListe[5];
因此,l1[].getSize()
是一个编译错误,因为对于数组,没有像 getSize()
这样的函数可用。
对于 l1
,您只能调用 array
的函数,请参阅 here .
在 @Indesttruktible 答案中,您可以看到如何调用定义的 getSize()
。
此外,根据您的代码建议您执行以下操作:
- Java: when to use static methods
- Implements vs extends: When to use? What's the difference? (因为您扩展了
Main
类) - How to instantiate an object in java?
- How to initialize an array of objects in Java
- Choosing Java tools (IDE and compiler) for beginners
(记住>不要使用 IDE 来学习代码,而是用它来编码)
希望这有帮助。
关于java - 无法在数组类型 (Class) MitarbeiterListe[] 上调用方法 getSize(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55782388/