[2021] java – ¿Qué significa el error «no se puede encontrar el símbolo» o «no se puede resolver el símbolo»? {HD}


Realmente no. «No se puede encontrar el símbolo», «No se puede resolver el símbolo» y «Símbolo no encontrado» significan lo mismo. Diferentes compiladores de Java usan diferentes expresiones.

en primer lugar es un error de compilación1. Esto significa que ningún Hay un problema en su código fuente de Java, o Hay un problema en la forma de compilarlo.

Su código fuente de Java consta de las siguientes cosas:

  • Palabras clave: me gusta class, whileetc.
  • literalmente: cómo true, false, 42, 'X' Y "Hi mum!".
  • Operadores y otros tokens no alfanuméricos: como +, =, {etc.
  • Identificadores: como Reader, i, toString, processEquibalancedElephantsetc.
  • comentarios y espacios.

El símbolo no se puede encontrar el error está relacionado con los identificadores. Cuando se compila su código, el compilador necesita averiguar qué significa cada identificador único en su código.

Un error de «no se puede encontrar el símbolo» significa que el compilador no puede hacer esto. Su código parece referirse a algo que el compilador no entiende.

Como primer orden, sólo hay una causa. El compilador buscó en todas partes donde el identificador Ellos deberían estar definido y no pudo encontrar la definición. Esto puede deberse a varias cosas. Los más comunes son los siguientes:

  • Para identificadores en general:

    • Tal vez escribiste mal el nombre; a saber StringBiulder En vez de StringBuilder. Java no puede y no intentará compensar la ortografía o los errores tipográficos.
    • Tal vez entendiste mal el caso; a saber stringBuilder En vez de StringBuilder. Todos los identificadores de Java distinguen entre mayúsculas y minúsculas.
    • Quizás usó guiones bajos de manera inapropiada; a saber mystring Y my_string son diferentes (Si sigue las reglas de estilo de Java, está protegido en gran medida de este error…)
    • Tal vez esté tratando de usar algo declarado «en otro lugar»; es decir, en un contexto diferente al que implícitamente le dijiste al compilador que buscara. (¿Una clase diferente? ¿Un alcance diferente? ¿Un paquete diferente? ¿Una base de código diferente?)
  • Para identificadores que necesitan hacer referencia a variables:

    • Tal vez te olvidaste de declarar la variable.
    • La declaración de la variable puede haber estado fuera del alcance en el momento en que intentó usarla. (Ver ejemplo a continuación)
  • Para identificadores que deberían ser nombres de métodos o campos:

    • Es posible que esté intentando hacer referencia a un método o campo heredado que no se declaró en las clases o interfaces padre/ancestro.

    • Tal vez esté tratando de hacer referencia a un método o campo que no existe (es decir, no fue declarado) en el tipo que está usando; p.ej "someString".push()dos.

    • Tal vez esté tratando de usar un método como campo, o viceversa; p.ej "someString".length o someArray.length().

    • Tal vez esté trabajando con una matriz en lugar de un elemento de matriz; p.ej

          String strings[] = ...
          if (strings.charAt(3)) { ... }
          // maybe that should be 'strings[0].charAt(3)'
      
  • Para identificadores que deberían ser nombres de clase:

    • Tal vez te olvidaste de importar la clase.

    • Es posible que haya utilizado importaciones «estrella», pero la clase no está definida en ninguno de los paquetes importados.

    • tal vez olvidaste uno new como en:

          String s = String();  // should be 'new String()'
      
  • Para los casos en los que el tipo o instancia no parece tener el elemento esperado (por ejemplo, método o campo):

    • Tal vez haya declarado una clase anidada o un parámetro genérico para ella. Oscuridad el tipo que desea utilizar.
    • Tal vez esté sombreando una variable estática o de instancia.
    • Tal vez importó el tipo incorrecto; B. Sugerido debido a la terminación de IDE o autocorrección java.awt.List En vez de java.util.List.
    • Es posible que esté utilizando (compilando contra) la versión incorrecta de una API.
    • Tal vez olvidó enviar su objeto a una subclase apropiada.
    • Quizás haya declarado que el tipo de su variable es un supertipo del que contiene el elemento que está buscando.

El problema suele ser una combinación de los anteriores. Por ejemplo, tal vez «destacados» importados java.io.* y luego traté de usar el Files Clase… lo que hay en java.nio no java.io. O tal vez…



[2021] java – ¿Qué significa el error «no se puede encontrar el símbolo» o «no se puede resolver el símbolo»? {HD}

Etiquetas:

Sin comentarios

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *