为什么调用此readFile方法时出错?

时间:2018-11-21 14:26:06

标签: java

我在类readFile中使用的方法RunProgram出错了。

我得到的错误是:

  

RunProgram.java使用未经检查或不安全的操作。

我的RunProgram类的代码是:

 import java.util.ArrayList;

 public class RunProgram{        
  public static void main(String [] args){

    String [] namen = Input.geefInputNamen();

    ArrayList<Spelers> spelerDatabase = new ArrayList<Spelers>();
    spelerDatabase = FileReader.readFile("Player Database");    
   }
 }

方法readFile在以下代码中定义:

 import java.io.*;
 import java.util.ArrayList;

 public class FileReader {

  public static ArrayList readFile(String naamvdfile) {
    ArrayList<Spelers> spelerDatabase = new ArrayList<Spelers>();   
   try {
int LineNr = 4;         
File aFile = new File (naamvdfile+ ".xlsx");
    BufferedReader aBr = new BufferedReader(new java.io.FileReader(aFile));                    
 String aLine ="";  
    while (aLine !=> null) {
            aLine = aBr.readLine();
            if (aLine != null) {
                String [] lineParts = aLine.split(";", -1);
                if (lineParts.length == 10) {

                    int overall = Integer.parseInt(lineParts[1]);
                    int shootMid = Integer.parseInt(lineParts[4]);
                    int shootDis = Integer.parseInt(lineParts[5]);
                    int defence = Integer.parseInt(lineParts[6]);
                    int rebounden = Integer.parseInt(lineParts[7]);
                    int playmaker = Integer.parseInt(lineParts[8]);
                    int atletisch = Integer.parseInt(lineParts[9]);

                    Spelers speler = new Spelers(lineParts[0], overall, 
                       lineParts[2], lineParts[3], shootMid, shootDis, 
                       defence, rebounden, playmaker, atletisch);
                    spelerDatabase.add(speler);
                }
                else System.out.println("Lijn " + LineNr +" is niet volledig 
                                       ingevuld!");
                LineNr++;
            }       
    }           
  System.out.println("Aantal spelers dat we inlazen: " + LineNr); 
   }        
 catch (Exception e) { }        
 return spelerDatabase;     
    } 
  }

最后的代码在编译时不会出错。

2 个答案:

答案 0 :(得分:0)

您收到未经检查的警告,因为readFile()在将其保存到ArrayList类型的对象时返回了ArrayList<Spelers>。只需更改方法的返回类型。

public static ArrayList<Spelers> readFile(String naamvdfile) {
    ....
}

答案 1 :(得分:0)

ArrayList<Spelers>类的以下函数中,将函数返回类型更改为FileReader

  public static ArrayList<Spelers> readFile(String naamvdfile) {
    ...

RunProgram类期望使用ArrayList<Spelers>,而方法签名告诉它返回类型是无类型的ArrayList