Por ejemplo, escriba un fragmento de código como este:
Copie el código de código de la siguiente manera:
ent yo;
{
intj=1;
i=j;
}
Si este código existe en el área de definición de clase, entonces sabemos que es un bloque de declaración ordinario que se utiliza para inicializar el contenido de los atributos de la clase. Se llamará cuando se cree una instancia de la clase y se pueden ejecutar algunos métodos en él.
En muchos casos, se usará en modos singleton y otros. Agregue un estático antes para inicializar el contenido de clases complejas, lo que puede evitar algunas excepciones de tiempo de ejecución causadas por la secuencia de carga.
¿Pero qué pasa si este código aparece en un método?
Básicamente no tiene ningún sentido. En mis pensamientos anteriores, era sólo un formato para incluir código, nada más.
Hoy escribí un pequeño código relacionado con "etiquetas de declaración":
Copie el código de código de la siguiente manera:
etiqueta17: int i;
intj;
ThreadGroup[] arrayOfThreadGroup;
si (bandera)
romper etiqueta17;
devolver 0;
La excepción "Error de sintaxis en el token ":", {esperado después de este token" se produjo en la posición ":".
Es decir, cuando el código no puede existir en una sola línea (int i debe tener una posición clara de instanciación/asignación dentro del cuerpo del método), label17 debe marcarse con un bloque de declaración.
El formato correcto es:
Copie el código de código de la siguiente manera:
etiqueta17: {
ent yo;
intj;
ThreadGroup[] arrayOfThreadGroup;
si (bandera)
romper etiqueta17;
devolver 0;
}
o:
etiqueta17:
ent yo;
intj;
ThreadGroup[] arrayOfThreadGroup;
si (bandera){
romper etiqueta17;
devolver 0;}
Veamos un uso incorrecto:
Copie el código de código de la siguiente manera:
etiqueta13: int x = 0;
Obviamente, hay un bloque de declaración de una sola línea predeterminado después de la etiqueta. Esta x no se puede usar en ningún lugar en el futuro, error. Los consejos son los siguientes:
Múltiples marcadores en esta línea
- x no se puede resolver en una variable
- Error de sintaxis en el token "int", elimine este token
Hay dos formatos correctos:
Copie el código de código de la siguiente manera:
int x = 0;
etiqueta13: x = 0;
o
etiqueta13:{int x = 0;}
Así que especulé que un malentendido previo era que en usos como for(){} y if(){}, el if() lógico y el bloque de instrucciones {} deberían ser dos sintaxis independientes.