Índice:
- Colocar letras maiúsculas onde elas pertencem
- Partindo de uma indicação de comutação
- Comparando valores com um sinal igual duplo
- Adicionando componentes a uma GUI
- Adicionando ouvintes para lidar com eventos
- Definindo os construtores necessários
- Reparando referências não estáticas
- Permanecer dentro dos limites em uma matriz
- Antecipando ponteiros nulos
- Ajudando o Java a encontrar seus arquivos
Vídeo: Erros que devs Java profissionais cometem que os impedem de crescer na Carreira(e como evitar!) 2024
As únicas pessoas que nunca cometem erros são as pessoas que nunca fazem nada. Mas um planejamento cuidadoso pode ajudá-lo a evitar alguns dos papéis Java mais comuns, como o seguinte.
Colocar letras maiúsculas onde elas pertencem
Java é uma linguagem sensível a maiúsculas e minúsculas, então você realmente tem que se importar com seus P s e Q s - junto com todas as outras letras do alfabeto. Aqui estão algumas coisas a ter em mente ao criar programas Java:
- As palavras-chave de Java são completamente minúsculas. Por exemplo, em uma instrução Java if, a palavra se não pode ser Se ou IF.
- Quando você usa nomes da API Java (Application Programming Interface), o caso dos nomes deve coincidir com o que aparece na API.
- Você também precisa ter certeza de que os nomes que você compõe sejam capitalizados da mesma maneira ao longo de todo o programa. Se você declarar uma variável myAccount, você não pode se referir a isso como MyAccount, myaccount ou Myaccount. Se você capitalizar o nome da variável de duas maneiras diferentes, a Java pensa que está se referindo a duas variáveis completamente diferentes.
Partindo de uma indicação de comutação
Se você não sair de uma declaração de switch, você obtém uma queda. Por exemplo, se o valor do versículo for 3, o código a seguir imprime as três linhas - Último abster, Ele é uma dor e não tem cérebro.
switch (verso) {
caso 3:
para fora. imprimir ("último refrão",);
para fora. println ("último refrão",);
caso 2:
fora. imprimir ("Ele é uma dor",);
para fora. println ("ele é uma dor",);
caso 1:
para fora. imprimir ("Não tem cérebro",);
para fora. println ("não tem cérebro",);
}
Comparando valores com um sinal igual duplo
Quando você compara dois valores um com o outro, você usa um sinal duplo igual. A linha
se (inputNumber == randomNumber)
está correta, mas a linha
se (inputNumber = randomNumber)
não está correta.
Adicionando componentes a uma GUI
Aqui está um construtor para um quadro Java:
public SimpleFrame () {
Botão JButton = novo JButton ("Obrigado …" );
setTitle ("… Katie Feltman e Heidi Unger" );
setLayout (novo FlowLayout ());
adicionar (botão);
botão. addActionListener (this);
setSize (300, 100);
setVisible (true);
}
Seja lá o que fizer, não esqueça a chamada para o método de adicionar. Sem essa chamada, você vai para todo o trabalho de criar um botão, mas o botão não aparece em seu quadro.
Adicionando ouvintes para lidar com eventos
Consulte novamente o código da seção anterior para construir um SimpleFrame.Se você esqueceu a chamada para addActionListener, nada acontece quando você clica no botão. Clicar o botão mais difícil uma segunda vez não ajuda.
Definindo os construtores necessários
Quando você define um construtor com parâmetros, como em
temperatura pública (número duplo), o computador não cria mais um construtor sem parâmetros padrão para você. Em outras palavras, você não pode mais chamar
Temperatura roomTemp = nova Temperatura ();
a menos que você defina explicitamente seu próprio construtor de temperatura sem parâmetros.
Reparando referências não estáticas
Se você tentar compilar o seguinte código, você receberá uma mensagem de erro:
classe WillNotWork {
String greeting = "Hello";
public static void main (String args []) {
Sistema. Fora. println (saudação);
}
}
Você recebe uma mensagem de erro porque a principal é estática, mas a saudação não é estática.
Permanecer dentro dos limites em uma matriz
Quando você declara uma matriz com dez componentes, os componentes têm índices de 0 a 9. Em outras palavras, se você declarar convidados
int [] = novo int [10];, você pode se referir aos componentes da série de convidados, escrevendo visitantes [0], convidados [1], e assim por diante, até os convidados [9]. Você não pode escrever convidados [10], porque a matriz de convidados não tem nenhum componente com o índice 10.
Antecipando ponteiros nulos
Na programação Java da vida real, você vê essa exceção o tempo todo. Uma NullPointerException ocorre quando você chama um método que deveria retornar um objeto, mas o método não retorna nada. Aqui está um exemplo barato:
importar java estável. lang. Sistema. Fora;
importar java. io. Arquivo;
class ListMyFiles {
public static void main (String args []) {
Arquivo myFile = new File (" windows" );
String dir [] = myFile. Lista();
para (String fileName: dir) {
para fora. println (fileName);
}
}
}
Este programa exibe uma lista de todos os arquivos no diretório do Windows.
Mas o que acontece se você mudar windows para outra coisa - algo que não representa o nome de um diretório?
Arquivo myFile = novo arquivo ("# *% $!!" );
Então a nova chamada de arquivo retorna nula (uma palavra Java especial que significa nada ), então a variável myFile não tem nada nele. Mais tarde no código, o dir variável refere-se a nada, e a tentativa de percorrer todos os valores de dir falha miseravelmente. Você obtém uma grande NullPointerException, e o programa cai à sua volta.
Para evitar esse tipo de calamidade, verifique a documentação da API de Java. Se você está chamando um método que pode retornar nulo, adicione o código de tratamento de exceções ao seu programa.
Ajudando o Java a encontrar seus arquivos
Você está compilando o código Java, cuidando de seu próprio negócio, quando o computador oferece um NoClassDefFoundError. Todos os tipos de coisas podem dar errado, mas é provável que o computador não consiga encontrar um arquivo Java específico. Para corrigir isso, você deve alinhar todos os planetas corretamente.
- O diretório do seu projeto deve conter todos os arquivos Java cujos nomes são usados em seu código.
- Se você usa pacotes nomeados, o diretório do seu projeto deve ter nomes apropriados de subdiretórios.
- Seu CLASSPATH deve estar configurado corretamente.