Por exemplo, escreva um trecho de código como este:
Copie o código do código da seguinte forma:
int eu;
{
intj=1;
eu=j;
}
Se este código existir na área de definição de classe, então sabemos que é um bloco de instruções comum usado para inicializar o conteúdo dos atributos da classe. Ele será chamado quando a classe for instanciada e alguns métodos podem ser executados nele.
Em muitos casos, ele será usado em singleton e outros modos. Adicione um estático antes dele para inicializar o conteúdo de classes complexas, o que pode evitar algumas exceções de tempo de execução causadas pela sequência de carregamento.
Mas e se esse código aparecer em um método?
Basicamente não faz sentido algum. Em meus pensamentos anteriores, era apenas um formato para incluir código, nada mais.
Hoje escrevi um pequeno código relacionado a "tags de instrução":
Copie o código do código da seguinte forma:
rótulo17: int i;
intj;
ThreadGroup[] arrayOfThreadGroup;
se (bandeira)
quebrar rótulo17;
retornar 0;
A exceção "Erro de sintaxe no token ":", { esperado após este token" ocorreu na posição ":".
Ou seja, quando o código não pode existir em uma única linha (int i deve ter uma posição clara de instanciação/atribuição dentro do corpo do método), label17 precisa ser marcado com um bloco de instrução.
O formato correto é:
Copie o código do código da seguinte forma:
rótulo17: {
int eu;
intj;
ThreadGroup[] arrayOfThreadGroup;
se (bandeira)
quebrar rótulo17;
retornar 0;
}
ou:
rótulo17:
int eu;
intj;
ThreadGroup[] arrayOfThreadGroup;
se (sinalizador){
quebrar rótulo17;
retornar 0;}
Vejamos um uso incorreto:
Copie o código do código da seguinte forma:
rótulo13: int x = 0;
Obviamente, há um bloco de instrução de linha única padrão após o rótulo Este x não pode ser usado em nenhum lugar no futuro, erro. As dicas são as seguintes:
Vários marcadores nesta linha
- x não pode ser resolvido para uma variável
- Erro de sintaxe no token "int", exclua este token
Existem dois formatos corretos:
Copie o código do código da seguinte forma:
interno x = 0;
rótulo13: x = 0;
ou
etiqueta13:{ int x = 0;}
Então, especulei que um mal-entendido anterior era que em usos como for(){} e if(){}, if() lógico e bloco de instrução {} deveriam ser duas sintaxes independentes.