¿Cómo soluciono el error donde no puedo hacer una referencia estática a un campo de entrada no estático?

Estoy aprendiendo Java. Escribí el siguiente código pero recibo este error "no puedo hacer una referencia estática a un campo de entrada no estático" en Arrayfunction (), cuando intento tomar una entrada. ¿Por qué es así y cómo puedo solucionarlo?

import java.util.*;
public class MultidimArrays {

Scanner input= new Scanner(System.in);

public static void main(String args[])
{       
    int array[][]= new int[2][3];

    System.out.println("Passing array to a function");

    Arrayfunction(array);
}

public static void Arrayfunction(int array[][])
{
    System.out.println("Inside Array function");

    for(int i=0;i<array.length;i++)
    {
        for(int j=0;j<array[i].length;j++)
        {
            System.out.println("Enter a number");
            array[i][j]=input.nextInt();// error
    }
}

}

Respuesta 1

El escáner no está definido como estático, por lo tanto, tiene un alcance incorrecto

Cree la instancia del Escáner dentro Arrayfunctiono cree su escáner con

private static Scanner input= new Scanner(System.in);
Respuesta: 2

Una non staticreferencia está vinculada a la instancesde la class. Si bien todo el staticcódigo está vinculado a la classmisma.

Debes agregar el static keyword.

Respuesta: 3

inputen su clase hay una variable de instancia (ya que no está definida como static), lo que significa que cada instancia MultidimArraystiene una propia. staticlos campos o métodos (a menudo denominados "variables / métodos de clase" se comparten entre todas las instancias de una clase.

Como Arrayfunctiones static, no puede referirse a miembros de instancia de su clase; no hay forma de que sepa cuál MultidimArray usar. Puede resolver esto haciéndose inputestático o eliminando el staticcalificador ArrayFunctiony creando una instancia de su clase:

public static void main(String args[])
{       
    int array[][] arr = new int[2][3]; //typo here, variable needs a name :)

    System.out.println("Passing array to a function");
    MultidimArray ma = new MultidimArray();
    ma.Arrayfunction(arr);
}
Respuesta: 4

La razón de este error es: como no ha creado el objeto, la variable inputno estática no existe, por lo que no puede usarla. Para arreglarlo puedes hacer inputcomostatic

static Scanner input= new Scanner(System.in);
Respuesta: 5

Tengo los siguientes textos: "Los datos de la Rama 1 son correctos - verdaderos" "los datos de la Rama 4 son correctos - falsos" Para cada texto, me gustaría obtener el número de rama y el valor booleano verdadero ...

¿Puedo autenticar a mis usuarios por sus IP en un sistema Active Directory en lenguaje Java? Estoy conectado a la red por una máquina Linux. No sé por dónde debo comenzar. Gracias por adelantado

Tengo una actividad impulsada por un FragmentPagerAdapter que agrega fragmentos a medida que el usuario desliza hacia la izquierda y hacia la derecha. Este fragmento secundario que se agrega actualmente es estático y contiene un ListView de elementos. YO ...

¿Es posible cambiar el agente de usuario de los servicios de AWS SDK cuando iniciamos servicios como S3 o IAM? La razón es que al usar el SDK, cualquier actividad de mi aplicación se registrará como "Java 1.8 ...