尝试打印对象并返回null

时间:2015-10-26 22:57:25

标签: java

所以我编写了一个代码,用于从txt文件中获取行并使用数据创建一个对象,并将该对象添加到数组列表中,但是当我尝试打印对象时会发生奇怪的事情。 这是主要的课程:

public class Main{
    static ArrayList<profesor>profesors = new ArrayList<profesor>();
    public static void main(String[]args) throws Exception{
        readList();
        for(int i=0;i<profesors.size(); i++){
            String p = profesors.get(i).toString();
            System.out.println(p);

        }

        fillTimetable();
        displayTimetable();


    }
    private static void readList() throws Exception {
        FileReader file = new FileReader("list.txt");
        BufferedReader reader=new BufferedReader(file);
        String line =reader.readLine();
        String lineSplit[]= new String[27];
        while(line != null){
            lineSplit = line.split("\\s+");
            profesors.add(new profesor(lineSplit[0], lineSplit[1], new String[]{ lineSplit[2], lineSplit[3], lineSplit[4], lineSplit[5], lineSplit[6], lineSplit[7],lineSplit[8], lineSplit[9], lineSplit[10], lineSplit[11], lineSplit[12], lineSplit[13], lineSplit[14], lineSplit[15], lineSplit[16], lineSplit[17], lineSplit[18], lineSplit[19], lineSplit[20], lineSplit[21], lineSplit[22], lineSplit[23], lineSplit[24], lineSplit[25], lineSplit[26]}));
            line = reader.readLine();

        }

    }
    private static void fillTimetable() {
        // TODO Auto-generated method stub

    }
    private static void displayTimetable() {
        // TODO Auto-generated method stub

    }

}

这是profesor类:

import java.util.Arrays;

public class profesor {
    private String name;
    private String subject;
    private String[] avalidehours=new String[25];

    public profesor(String string, String string2, String[] strings) {

        string = name;
        string2 = subject;
        strings = avalidehours;
    }
    public String toString(){
        return name + subject + Arrays.toString(avalidehours);
    }

}

txt:

Petittsdfi  Mateasdfmatica  mif mig vif vig ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ
Csdfales    Apeasddsca  luc lud mac mad mic mid juc jud ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ
Lucsdfdfero NavasdsdegacionI    lub luc lud lue mab mac mad mae mib mic mid mie jub juc jud jue vib vic vid vie ññ  ññ  ññ  ññ  ññ
Bergamaschi TecPasdsdesc    lua luf maa maf mia mif jua juf via vif ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ
Mazzssa MeteoasffrologiaI   mab mac jub juc ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ
Puesdfdla   ComunicaasdcionesI  lua lub luc lud maa mab mac mad mia mib mic mid jua jub juc jud via vib bic bid ññ  ññ  ññ  ññ  ññ
Chifdsatti  IngTasddecI mib mic mid mie jub juc jud jue ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ
Jimesdfdfnez    Superviasdfvencia   maa mab jua jub ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ
Rusbissno   ManasddiobraI   mab mac mad mae maf mib mic mid mie mif ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ
Veldfsasco  MaquinasI   vib vic vid vie vif ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ  ññ
Luscsro EquiposElectronicos lub luc lud lue mab mac mad mae mib mic mid mie jub juc jud jue vib vic vid vie ññ ññ ññ ññ ññ
Ateasdnas PrimerosAux vib vic vid vie ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ
Fustafer CargaasfEstiva lue luf lug mae maf mag mie mif mig jue juf jug vie vif vig  ññ ññ ññ ññ ññ ññ ññ ññ ññ ññ

这就是我运行程序时得到的结果:

nullnull[null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null]
nullnull[null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null]
nullnull[null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null]
nullnull[null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null]
nullnull[null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null]
nullnull[null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null]
nullnull[null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null]
nullnull[null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null]
nullnull[null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null]
nullnull[null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null]
nullnull[null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null]
nullnull[null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null]
nullnull[null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null]

2 个答案:

答案 0 :(得分:4)

public profesor(String string, String string2, String[] strings) {

    this.name  = string;
    this.subject  = string2;
    this.avalidehours = strings;
}

应该是

    _.range(coll.length / n).map(i => coll.slice(i * n, (i + 1) * n))

你真的应该考虑选择更好的变量naes,尊重Java命名约定,并使用循环而不是逐个枚举25个avalidehours元素。

此外,在阅读文件时使用try-with-resources语句,以确保在阅读完毕后阅读器已关闭。

答案 1 :(得分:0)

您撤消了profesor构造函数中的分配:

string = name;

应该是

name = string;