16. Enums e anotações

Página 101

16. Enums e Anotações em Java

Quando você está aprendendo a programar em Java, é essencial entender o uso de enums e anotações, pois eles são recursos poderosos que podem tornar seu código mais organizado, legível e menos propenso a erros. Nesta seção, vamos abordar o que são enums e anotações, como e quando usá-los no desenvolvimento de software Java.

Enums

Em Java, um enum é um tipo especial de classe que representa um grupo de constantes (variáveis imutáveis, como final variables). Enums são usados quando você tem valores que você sabe que não vão mudar, como dias da semana, cores, direções, etc.


public enum Day {
    SUNDAY, MONDAY, TUESDAY, WEDNESDAY,
    THURSDAY, FRIDAY, SATURDAY
}

Você pode usar enums para controlar um conjunto de valores fixos e para evitar erros de digitação que podem ocorrer ao usar Strings ou inteiros para representar esses valores fixos.

Construtores, Métodos e Variáveis em Enums

Enums em Java podem ter construtores, métodos e variáveis de instância. Isso permite que você associe dados adicionais e comportamento com seus enums.


public enum Color {
    RED("#FF0000"), GREEN("#00FF00"), BLUE("#0000FF");

    private final String code;

    Color(String code) {
        this.code = code;
    }

    public String getCode() {
        return code;
    }
}

No exemplo acima, cada enum de cor tem um código de cor associado. Você pode acessar esse código chamando o método getCode().

Métodos Úteis em Enums

Java fornece alguns métodos úteis que você pode usar com enums:

  • values(): Retorna um array contendo todos os valores do enum na ordem em que são declarados.
  • valueOf(String name): Retorna o valor do enum com o nome especificado.
  • ordinal(): Retorna a posição do enum na declaração (começando de zero).

Anotações

Anotações em Java são usadas para fornecer informações adicionais para o compilador ou para ferramentas de desenvolvimento. Elas não têm efeito direto na operação do código que elas anotam.

Anotações Integradas

Java vem com algumas anotações integradas que você pode usar em seu código:

  • @Override: Indica que um método está substituindo um método da superclasse.
  • @Deprecated: Indica que um método ou classe não deve mais ser usado.
  • @SuppressWarnings: Instrui o compilador a ignorar avisos específicos.
  • @SafeVarargs: Suprime avisos relacionados ao uso de varargs com tipos genéricos.
  • @FunctionalInterface: Indica que a interface é destinada a ser uma interface funcional.

Definindo Anotações Personalizadas

Você também pode criar suas próprias anotações em Java. Isso é feito usando a palavra-chave @interface. Anotações personalizadas podem ter elementos que podem ser configurados quando a anotação é aplicada.


import java.lang.annotation.*;

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface Todo {
    public enum Priority {LOW, MEDIUM, HIGH}
    public enum Status {STARTED, NOT_STARTED}
    String author() default "Yash";
    Priority priority() default Priority.LOW;
    Status status() default Status.NOT_STARTED;
}

No exemplo acima, a anotação @Todo pode ser usada para marcar métodos que precisam de mais trabalho. Ela tem três elementos: author, priority e status, cada um com um valor padrão.

Usando Anotações

Você aplica anotações a declarações como classes, métodos ou variáveis. As anotações podem ser acessadas em tempo de execução usando reflexão, o que permite que você escreva código que se comporta de maneira diferente com base nas anotações presentes.


public class Example {
    @Todo(priority = Todo.Priority.HIGH, author = "Carlos", status = Todo.Status.STARTED)
    public void incompleteMethod() {
        // código que ainda não está completo
    }
}

No exemplo acima, o método incompleteMethod é marcado com a anotação @Todo, indicando que o método é uma tarefa em andamento, com alta prioridade e um autor específico.

Processamento de Anotações

As anotações podem ser processadas em tempo de compilação ou em tempo de execução. Em tempo de compilação, as anotações podem ser processadas por ferramentas de geração de código ou por analisadores estáticos. Em tempo de execução, as anotações podem ser processadas através de reflexão, permitindo que o código inspecione suas próprias anotações.

Conclusão

Enums e anotações são recursos avançados do Java que oferecem maneiras poderosas de expressar intenções claras e controlar o comportamento do seu código. Enums ajudam a gerenciar conjuntos fixos de constantes de uma maneira tipo-segura, enquanto as anotações permitem que você forneça metadados adicionais para o seu código que podem ser usados pelo compilador ou por ferramentas de desenvolvimento. Compreender esses conceitos é essencial para qualquer programador Java que deseja escrever código limpo, manutenível e robusto.

Répondez maintenant à l’exercice sur le contenu :

Qual dos seguintes métodos é usado em Java para retornar todos os valores de um enum na ordem em que são declarados?

Tu as raison! Félicitations, passez maintenant à la page suivante

Vous avez raté! Essayer à nouveau.

Page suivante de lebook gratuit :

10217. Tratamento de exceções e a hierarquia de exceções em Java

Obtenez votre certificat pour ce cours gratuitement ! en téléchargeant lapplication Cursa et en lisant lebook qui sy trouve. Disponible sur Google Play ou App Store !

Get it on Google Play Get it on App Store

+ 6,5 millions
d'étudiants

Certificat gratuit et
valide avec QR Code

48 mille exercices
gratuits

Note de 4,8/5 dans les
magasins d'applications

Cours gratuits en
vidéo, audio et texte