No entiendo por qué, pero mi método no puede acceder a la lista de matrices. Cuando intento agregar desde la entrada, dice error: no se puede encontrar el símbolo.


    public class Kitchen{
        public static void Kitchen(String[] args ){
        ArrayList<String> Utensil = new ArrayList<String>();
        Utensil.add("Knife"); 
        Utensil.add("Boiler"); 
        System.out.println(Utensil);
        }
       
        public void addUtensil(){
            Scanner sc = new Scanner(System.in);
            System.out.println("Utensil to add? ");
            String new = sc.nextLine();
            Utensilio.add(new);
       }
    }

-2
Nuno 12 jul. 2021 a las 09:57

3 respuestas

La mejor respuesta

Debe pasar Utensil ArrayList como parámetro al método addUtensil ().

public static void Kitchen(String[] args ){
    ArrayList<String> Utensil = new ArrayList<String>();
    Utensil.add("Knife"); 
    Utensil.add("Boiler"); 
    addUtensil(Utensil);
    System.out.println(Utensil);
    }

 public static void addUtensil(List<String> Utensil){
        Scanner sc = new Scanner(System.in);
        System.out.println("Utensil to add? ");
        String new = sc.nextLine();
        Utensilio.add(new);
}
2
Petar Bivolarski 12 jul. 2021 a las 07:02

Hay dos métodos diferentes

  1. Cocina
  2. addUtensil

Declaró una variable local a continuación en un método (Cocina) e intentó acceder en otro método (addUtensil).

ArrayList<String> Utensil = new ArrayList<String>();

En java no se puede acceder a la variable local de un método a otro

2
sanjeevjha 12 jul. 2021 a las 07:02

Otra opción es definirla como una variable de clase, recuerde que podemos acceder a una variable estática a través de un método no estático, pero por otro lado no lo es.

   public class Kitchen{
        
        private static ArrayList<String> Utensil = new ArrayList<String>();

        public static void Kitchen(String[] args ){
          Utensil.add("Knife"); 
          Utensil.add("Boiler"); 
          System.out.println(Utensil);
        }
       
        public void addUtensil(){
            Scanner sc = new Scanner(System.in);
            System.out.println("Utensil to add? ");
            String new = sc.nextLine();
            Utensilio.add(new);
       }
    }
1
lucumt 12 jul. 2021 a las 07:02