El artículo de vuelta ArrayList en lugar de booleano

Juan CA :

En el siguiente código, defino un método llamado loadItems, que supone la creación de una lista matriz de tipo Itemcon cada línea de un archivo de texto.

  • El objeto de artículos está formado por una cadena que contiene un nombre, y una variable int con un número.
  • Cada línea del archivo de texto contiene un nombre a la tienda en un nuevo elemento, seguido de =y antes de eso, el número que necesita ser almacenado en el nuevo artículo. En resumen, cada línea se ve algo como: String=int.

El problema es que, en lugar de devolver un nuevo elemento y almacenarlo en la loadItemslista Array, me da un error porque se supone que para devolver un valor lógico. Imagen que esto es causado porque se crea el nuevo elemento dentro de una función, mientras que los cheques para una nueva línea en el archivo de texto.

    ArrayList<Item> loadItems() throws FileNotFoundException {

        File phaseOneFile = new File("Phase-1.txt");
        Scanner readPhaseOneFile = new Scanner(phaseOneFile);

        while (readPhaseOneFile.hasNextLine()){
            String actualLine = readPhaseOneFile.nextLine();
            String[] actualLineToItem = actualLine.split("=");

            Item newItem = new Item();
            newItem.itemName=actualLineToItem[0];
            newItem.itemWeight= Integer.parseInt(actualLineToItem[1]);

            return loadItems().add(newItem);

        } 

    }
Federico klez Culloca:

Un par de cosas.

  • Volverá demasiado pronto
  • Volverá las cosas mal
  • Se utiliza la recursividad por ninguna razón discernible

En primer lugar, usted debe devolver sólo después de haber construido su lista, por lo que eliminar el return.

En segundo lugar, devolver la lista después de que los extremos de bucle

En tercer lugar, las cosas se acumulan dentro de una real ArrayListy el retorno que en lugar de recursividad.

En cuarto lugar, no hay necesidad de devolver un tipo concreto, simplemente devuelve una List<Item>.

List<Item> loadItems() throws FileNotFoundException {

    File phaseOneFile = new File("Phase-1.txt");
    Scanner readPhaseOneFile = new Scanner(phaseOneFile);
    List<Item> items = new ArrayList<Item>();

    while (readPhaseOneFile.hasNextLine()){
        String actualLine = readPhaseOneFile.nextLine();
        String[] actualLineToItem = actualLine.split("=");

        Item newItem = new Item();
        newItem.itemName=actualLineToItem[0];
        newItem.itemWeight= Integer.parseInt(actualLineToItem[1]);

        items.add(newItem);

    } 

    return items;

}

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=231366&siteId=1
Recomendado
Clasificación