Java afirmam

Java afirmam
A afirmação em Java é uma declaração baseada na palavra reservada, afirmam, tendo uma expressão booleana e terminando com um semicolon. Acontece que certas condições em um programa podem impedir que ele funcione corretamente. A declaração assert verifica se essas condições existem em um programa.

Espera -se que a afirmação seja usada em um programa em que o programador suspeita que essa condição possa existir. Se a declaração de assert for usada e a condição não ocorrer incorretamente, o programa continuará sem nenhum problema. Se a condição ocorrer incorretamente, uma mensagem de erro será relatada. Essa verificação envolve uma expressão booleana. Obviamente, a codificação de afirmação não deve necessariamente envolver a palavra afirmada. Existem muitos bons programas que afirmam a codificação sem a palavra reservada. No entanto, o uso da palavra afirmada afirma traz à tona um recurso específico na programação, tornando o programa mais construtivo.

Considere o seguinte segmento de código:

Número inteiro em = null;
se (in != null)
Sistema.fora.println ("Faça isso.");
// Outras declarações
outro
Sistema.fora.println ("Teste falhou.");

Atualmente, o valor de "in" é nulo, mas pode ser qualquer número inteiro. O se-bock será executado se não for nulo, o que deve ser considerado bom. Se for nulo (falso), a parte da declaração IF composta será executada, relatando o problema.

Agora, uma declaração assert pode substituir a maioria das partes da declaração IF composta. Este é um uso clássico da declaração de assert. Outro uso clássico é verificar se o limite do resultado de um cálculo não foi alcançado, pois a descrição a seguir se apresenta:

A velocidade de um objeto em movimento é dada por,

s = d/t

onde d é distância, t é o tempo gasto e s é o resultado (velocidade). Pode -se desejar que a velocidade do objeto permaneça abaixo da velocidade do som e, portanto, não causa ondas de choque. Nesse caso, a declaração assert pode ser usada para afirmar que a velocidade está abaixo da velocidade do som, que é de 343 m/s.

Um código do programa para esse problema, sem a declaração de afirmação, pode ser o seguinte:

duplo d = 15, t = 3, s;
s = d / t;
se (s < 343)
Sistema.fora.println ("Faça isso.");
// Outras declarações
outro
Sistema.fora.println ("Teste falhou.");

Sintaxes de afirmação em java

Em Java, as sintaxes de afirmação estão em duas formas. Eles são:

afirmar expressão1;
e
Assert Expression1: Expression2;

Para a primeira opção (instrução), a expressão1 é uma expressão booleana. Nota: igual a, em uma expressão booleana é ==, porque, na computação, = significa atribuição enquanto == significa igualdade. Para a segunda opção (instrução), a expressão1 ainda é uma expressão booleana; Mas a expressão2 resulta em um valor, que pode ou não ser booleano (verdadeiro ou falso). No entanto, o valor não deve ser nulo. O objetivo da expressão2 é para mensagens o erro para o programador ou o usuário. Nesta segunda opção, o cólon separa as duas expressões. O cólon não se aplica à primeira opção.

Qualquer declaração de afirmação significa finalmente verdadeira ou falsa por causa da expressão booleana. Se for verdade, o programa continua como esperado. Se for falso, o erro deve ser relatado.

Assert Expression1
Validação

O código de exemplo para validação acima, é repetido aqui para referência rápida (visual):

Número inteiro em = null;
se (in != null)
Sistema.fora.println ("Faça isso.");
// Outras declarações
outro
Sistema.fora.println ("Teste falhou.");

"Assert Expression1" pode ser usado para este código da seguinte forma:

Número inteiro em = null;
afirmar em != nulo;
Sistema.fora.println ("Faça isso.");
// Outras declarações

Se a afirmação estiver ativada para o programa e se afirmar como falsa, como para essa codificação específica, as declarações abaixo da instrução Assert não serão executadas; e a Java Virtual Machine (OS) emitirá uma mensagem de erro. Se a afirmação não estiver ativada para o programa, as declarações abaixo da declaração assert serão executadas, apesar de serem falsas. Veja como ativar a afirmação para um programa abaixo.

Para essa codificação assert, o programador permite que a JVM lide com as mensagens de erro inteiramente por causa da ausência de expressão2.

Impedindo o alcance do limite

O código de exemplo para evitar o alcance do limite acima é repetido aqui para referência rápida (visual):

duplo d = 15, t = 3, s;
s = d / t;
se (s < 343)
Sistema.fora.println ("Faça isso.");
// Outras declarações
outro
Sistema.fora.println ("Teste falhou.");

"Assert Expression1" pode ser usado para este código da seguinte forma:

duplo d = 15, t = 3, s;
s = d / t;
afirma s < 343;
Sistema.fora.println ("Faça isso.");
// Outras declarações

Se a afirmação estiver ativada para o programa, para essa codificação específica, as declarações abaixo da instrução Assert serão executadas e a Java Virtual Machine (OS) não emitirá uma mensagem de erro; já que o resultado de 5 é menor que 343. Se a afirmação não estiver ativada, as declarações abaixo da declaração assert ainda serão executadas porque elas serão ignoradas mesmo que sejam falsas. Veja como ativar a afirmação para um programa abaixo.

Para essa codificação assert, o programador ainda permite que a JVM lide completamente com as mensagens de erro; por causa da ausência de expressão2.

Expressão2
Validação

O código de exemplo para validação acima, é repetido aqui para referência rápida (visual):

Número inteiro em = null;
se (in != null)
Sistema.fora.println ("Faça isso.");
// Outras declarações
outro
Sistema.fora.println ("Teste falhou.");

Expressão2 é para relatório de erro. A parte mais importante desta declaração IF composta é para relatórios de erros. Um uso correspondente da segunda declaração de afirmação, para esta codificação, pode ser a seguinte:

Número inteiro em = null;
afirmar em != null: in;
Sistema.fora.println ("Faça isso.");
// Outras declarações

Se a afirmação estiver ativada para o programa, para essa codificação específica, as declarações abaixo da declaração assert não serão executadas e a Java Virtual Machine (OS) emitirá uma mensagem de erro. Desta vez, a mensagem de erro usará o valor da variável, em. Se a afirmação não estiver ativada, as declarações abaixo da declaração assert serão executadas, apesar do fato de que a declaração assert resulta em false. Veja como ativar a afirmação para um programa abaixo.

Para essa codificação assert, o programador influencia a JVM em seu trato com mensagens de erro por causa da presença de expressão2 (in) - veja os detalhes abaixo.

Impedindo o alcance do limite

O código de exemplo para evitar o alcance do limite acima é repetido aqui para referência rápida (visual):

duplo d = 15, t = 3, s;
s = d / t;
se (s < 343)
Sistema.fora.println ("Faça isso.");
// Outras declarações
outro
Sistema.fora.println ("Teste falhou.");

Expressão2 é para relatório de erro. A parte mais importante desta declaração IF composta é para relatórios de erros. Um uso correspondente da segunda declaração de afirmação, para esta codificação, pode ser a seguinte:

duplo d = 15, t = 3, s;
s = d / t;
afirma s < 343 : s;
Sistema.fora.println ("Faça isso.");
// Outras declarações

Se a afirmação estiver ativada para o programa, para essa codificação específica, as declarações abaixo da instrução Assert serão executadas e a Java Virtual Machine (OS) não emitirá uma mensagem de erro; já que o resultado de 5 é menor que 343. Se o resultado (valor) de s for igual ou superior a 343, a mensagem de erro envolverá o valor de s. Se a afirmação não estiver ativada, as declarações abaixo da declaração assert ainda serão executadas porque elas serão ignoradas, mesmo que resultarem em falso. Veja como ativar a afirmação para um programa abaixo.

Para essa codificação assert, o programador influencia a JVM em seu trato com mensagens de erro por causa da expressão2 (s) - veja os detalhes abaixo.

Ativando a afirmação

Se um programa tiver codificação de afirmação, a declaração de assert será efetiva para respeitar a declaração de afirmação se o programa estiver ativado. Ativando a declaração de afirmação é feita após a compilação do programa Java ter sido compilado em ByteCode. Isso é feito na linha de comando ao executar o programa. Isso é feito incluindo o Switch -EnableSertions. Com interruptores na linha de comando, o - não significa "levar embora"; é um hífen (bala).

O uso do comutador opera apenas para a execução do programa. Se o interruptor não for usado, na próxima vez que o programa for chamado, a execução ignorará a declaração de assert.

Nesta seção, apenas o código para validação será abordado. O código de validação com a primeira declaração de opção é:

Número inteiro em = null;
afirmar em != nulo;
Sistema.fora.println ("Faça isso.");
// Outras declarações

Suponha que este esteja no método main () da classe e arquivo principal, chamado TheClass. O arquivo normalmente será compilado com o comando:

Javac TheClass.Java

A compilação deve passar com sucesso. Com o interruptor, o programa de bytecode resultante, TheClass.classe, será executada na linha de comando com,

Java -EnableSertions theClass

O relatório (saída) será:

Exceção no tópico "principal" java.Lang.AssertionError
em TheClass.Principal (TheClass.Java: 6)

Observe que não há menção ao valor, nulo, para a variável, "in" na saída. Com isso, as declarações abaixo da declaração de assert no programa não são executadas.

O código de validação com a segunda opção afirmam declaração, que tem ": in" é:

Número inteiro em = null;
afirmar em != null: in;
Sistema.fora.println ("Faça isso.");
// Outras declarações

Suponha que este esteja no método main () da classe e arquivo principal, chamado TheClass. O arquivo será compilado com o comando:

Javac TheClass.Java

A compilação deve passar com sucesso. Com o interruptor, o programa de bytecode resultante, TheClass.classe, será executada na linha de comando com,

Java -EnableSertions theClass

O relatório (saída) será:

Exceção no tópico "principal" java.Lang.AssertionError: NULL
em TheClass.Principal (TheClass.Java: 6)

Observe que há menção ao valor, nulo, para a variável, "in" na saída, como ": nula" na primeira linha de saída. Com isso, as declarações abaixo da declaração de assert no programa ainda não são executadas devido à possibilidade de qualquer declaração de assert no programa. Se o interruptor, -enableSertions, for omitido na linha de comando, qualquer (ou tudo) afirmam declarações no programa será ignorado. O código abaixo ele ainda será executado, mesmo que as declarações assert (expressões booleanas) sejam falsas.

Conclusão

A afirmação em Java é uma declaração baseada na palavra reservada, afirmam, tendo uma expressão booleana e terminando com um semicolon. Acontece que certas condições em um programa podem impedir que ele funcione corretamente. A declaração assert verifica se essas condições existem em um programa.

Bons exemplos para o uso da declaração de assert estão em validação e para verificar se o resultado de um cálculo não atravessa um limite. Existem duas formas da declaração assert: uma que não ajuda na mensagem de erro e a outra que auxilia na mensagem de erro. Uma afirmação em Java é ativada na linha de comando, para o bytecode compilado, com o interruptor, -enableSertions.