无法在数组类型(类)MitarbeiterListe []上调用方法getSize()

时间:2019-04-21 11:42:55

标签: java

所以我有两个Java类。有类Mitarbeiter和类MitarbeiterListeMitarbeiterMitarbeiterid生成对象nameMitarbeiter应该保存在一个数组中,该数组在类MitarbeiterListe的构造函数中初始化。

我写了一个方法getSize(),该方法应返回数组中保存的Mitarbeiter的数量。

很遗憾,我无法在getSize()中使用main()。它给了我错误:

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());
}

3 个答案:

答案 0 :(得分:3)

您在System.out.println(l1.getSize());上遇到错误

因为您的l1是一个数组实例,所以您这样做:MitarbeiterListe l1[] = new MitarbeiterListe[5];
结果l1[].getSize()编译错误,对于数组,没有像getSize()这样的函数可用。

对于l1,您只能调用array的功能,请参阅here

在@Indestruktible答案中,您可以看到如何调用已定义的getSize()

此外,根据您的代码,建议您仔细阅读以下内容:

(请记住> 不要使用IDE来学习代码,而要使用它来进行编码

希望这会有所帮助。

答案 1 :(得分:1)

您应该将5传递给MitarbeiterListe构造函数,而不是创建MitarbeiterListe-objects的新数组:

MitarbeiterListe l1 = new MitarbeiterListe(5);
System.out.println(l1.getSize());

此外,如注释中所述,listegetSize应该是实例成员,而不是static变量/方法,否则构造函数根本没有任何意义。

答案 2 :(得分:0)

$(document).on('click', '#excelbutton', function () {

                ExportToExcel();
            })

function ExportToExcel(pageNumber, isPagination) {
                var gcModel = {
                    FromGiven: $('#dateFromGiven').val(),
                    ToGiven: $('#dateToGiven').val(),
                    FromTaken: $('#dateFromTaken').val(),
                    ToTaken: $('#dateToTaken').val(),
                    FromCardno: $('#FromCard').val(),
                    ToCardNo: $('#ToCard').val(),
                    
                    PageNumber: pageNumber ? pageNumber : 0
                };
                $.ajax({
                    url: "/GiftCard/ExportToExcel",
                    type: 'POST',
                    contentType: 'application/json',
                    data: JSON.stringify(gcModel) ,
                   // data: { },
                    success: function (responce) {
                        

                    },
                    error: function () {

                    }
                                       
                })
            }