enumeração de uso e notas baseados em Java

enumeração Enum

conceito

Ele é utilizado para definir um número finito, sob a forma de expressão discretos, muito clara do montante. (O papel de um semelhante a constante estática static final, mas vai integrar)

Enumeração de uso

  • Antes não enumerar, definir constantes estáticas necessários para definir estática final, mas o número de um longo tempo, parecer complicado
public static final int VIDEO = 1;//视频
public static final int AUDIO = 2;//音频
public static final int TEXT = 3;//文字
public static final int IMAGE = 4;//图片
  • Após a enumeração lá, podemos colocar classes tipo todas as constantes estáticas são enumerados
public enum Enums{
	VIDEO,AUDIO,TEXT,IMAGE;
}

// 调用方式  枚举名.常量
Enums.VIDEO;

enum embutido método

  • int compareTo (E e) Compara essa enumeração com o objectivo especificado (a classe de enumeração padrão que não estão dispostos em ordem a partir da esquerda)

    • (Enums.VIDEO) .compareTo ((Enums.AUDIO))

  • ** Classe getDelcaringClass () ** Volta enum constante tipo Classe objeto correspondente a esta enumeração.

    • <?> Class clazz = (Enums.VIDEO) .getDeclaringClass ();

  • ** nome String () / toString () ** Retorna o nome desta constante enum, declarou na sua declaração enum.

    • Enums.MONDAY.name () // segunda-feira

      Enums.MONDAY.toString () // segunda-feira

  • int ordinal () retorna enum ordinal constante

    • Enums.MONDAY.ordinal () // 0

  • ** t valores estáticos [] () ** devolver todos os valores de enumeração.

    • Enumerações [] = valores Enums.values ​​();

  • ** estática <T estende Enum> T valueOf (Classe Enums, nome String) ** Devoluções enum tipo constante enum com o nome especificado.

    • Enumerações d = Enum.valueOf (Enums.class, Enums.MONDAY.name ());

Quando há um construtor de classe de enumeração, o construtor padrão Tipo Privado

public enum Enums{
    // 枚举有构造参数时
	VIDEO(1, "视频"), AUDIO(2, "音频"), TEXT(3, "文本"), IMAGE(4, "图像");
    
    int value;
    String name;
    
    Enums(int value,String name){
        this.value = value;
		this.name = name;
    }
    
    // 存在构造器时,如果需要获取构造器中的值,需要让外界有获取方法
    public int getValue() {
		return value;
	}
	
	public String getName() {
		return name;
	}
}

public static void main(String[] args) {
        Enums[] values = Enums.values();
        for (Enums value : values) {
            System.out.print(value+":");
            System.out.println(value.getName());
        }
}


VIDEO	视频
AUDIO	音频
TEXT	文本
IMAGE	图像

anotações Anotação

conceito

Descrição do processo. Para o computador para ver

Categoria Função:

  • ① documento escrito: um documento gerado pelo código de anotação de geração de documentos de identificação doc [documentação]
  • ② análise de código: análise do código, código de anotação usando a reflexão [ID]
  • ③ verificação de compilação: por código de anotação identificados para que o compilador pode compilar verificação básica [Substituir]

JDK predefinidos número de notas

  • @Override: um método para detectar a anotação marcado se herdada da classe principal (interface)
  • @Deprecated: Este conteúdo comentário marcada, expressa obsoleto
  • @SuppressWarnings: avisos Suprimir
  • @SafeVarargs: Java início 7 apoio, ignorar o aviso de qualquer método ou construtor chamada variável tipo de parâmetro gerados.
  • @FunctionalInterface: Java 8 começou a suporte, identificar uma função anônima ou uma interface de função.
  • @Repeatable: Java 8 começou a suporte, identificar certas notas pode ser usado várias vezes no mesmo comunicado.

anotação personalizado

  • Essência: anotação é essencialmente uma interface que herda o padrão de anotação de Interface

  • MyAnno interface pública estende java.lang.annotation.Annotation {}

  • Propriedades: métodos de interface abstratas

  • requisitos:

  1. atributo Valor de retorno Tipo ter os seguintes valores

    • tipos de dados básicos
    • Corda
    • Enumerar
    • comentário
    • Mais do que um tipo de matriz
  2. A propriedade é definida quando você usa necessidade de dar a atribuição de propriedade

    1. Se a definição de propriedade, use a palavra-chave padrão para valor de inicialização atributo padrão, quando o uso de anotações, você não pode atribuir atributos.
    2. Se só a necessidade de atribuir um atributo e um valor do atributo nome, o valor pode ser omitido , valor definido diretamente.
    3. A atribuição de uma matriz usando pacote {valor}. Se a matriz tem apenas um valor, ele pode ser omitido {}
public @interface MyAnno {
//    int show1();
//
//    boolean show2();

    /*
    属性的返回值类型有下列取值
    * 基本数据类型
    * String
    * 枚举
    * 注解
    * 以上类型的数组
     */
//    int age();
//    String name();
//    String url() default "/*";
//    Sex sex() default Sex.Female;
//    MyAnno2 anno2();
    String[] arr();
    String value();//value属性非常特殊,当只有一个属性的时候,可以省略
    String url() default "/*";
    Sex sex() default Sex.Female;

}

As anotações são usadas para descrever a anotação: a meta-anotação

  • @Target: anotação pode descrever o papel da localização
    • ElementTypevalor:
    • ElementType.TYPE Anotações só pode ser modificado para especificar a classe ou interface - Key
    • ElementType.FIELD Anotações só pode ser modificado para especificar propriedades de membros - Key
    • ElementType.METHOD Anotações só pode especificar métodos de modificação - foco
    • ElementType.PARAMETER Notas parâmetro especifica o método só pode ser modificado
    • ElementType.CONSTRUCTOR Anotações só pode especificar o construtor modificado
    • ElementType.LOCAL_VARIABLE Anotações só pode ser modificado para especificar variáveis ​​locais
    • ElementType.TYPE_USE Especificam as anotações podem ser modificados depois de tudo --JDK1.8 têm
  • @Retention: Descrição estágio anotações são reservados
  • RetentionPolicy.SOURCE informações anotação é mantido no arquivo de origem
  • RetentionPolicy.CLASS Retida no arquivo de classe
  • RetentionPolicy.RUNTIME informações anotação permanece na corrida, com o uso de reflexão - Key

@Retention (RetentionPolicy.RUNTIME): anotação sendo descrito, será mantido para os arquivos de classe bytecode, e ler na JVM

  • @Documented: Descrição notas se o documento é arrastado para a api
  • @Inherited: Descrição notas se herdadas por subclasses

Use anotações no programa

Determinar se existe um comentário

  • isAnnotationPresent (Classe)

Obtém o comentário especificado

  • getAnnotation (notas .class)

chamada método abstrato valores de propriedade anotação foram configurados

  • . Método getAnnotation (Classe) é anotada como: anotação porção modificada (Tipo / Método / Campo) .getAnnotation ( anotada class) .age ();
Publicado 12 artigos originais · ganhou elogios 0 · Visualizações 53

Acho que você gosta

Origin blog.csdn.net/DavinDeng/article/details/104918961
Recomendado
Clasificación