Visão geral dos comentários de Java:
1. Anotações são para o compilador ver, o que é diferente das anotações
2. Três anotações básicas:
@Override diz ao compilador que isso está substituindo o método
@Deprecated Diga ao compilador que o método está desatualizado
@Suppresswarnings ("desmarcado") não avise
= (valor = {"desmarcado"})
3. Anotações podem ser usadas para substituir arquivos de configuração tradicionais
4. A partir do JDK5, Java adicionou suporte para metadados (metadados), a saber, anotação.
Anotações personalizadas e anotações de reflexão
Anotações personalizadas:
1. Crie uma nova anotação: (apenas mais um símbolo @ do que a definição da interface)
A cópia do código é a seguinte:
public @interface myannotation {
//propriedade
String quem ();
int age ();
String gênero ();
}
2. Defina a anotação com valores padrão
A cópia do código é a seguinte:
public @interface youannotation {
String que () padrão "Tom";
Int Age () Padrão 0;
String gênero () padrão "feminino";
}
3. Situação de matriz
A cópia do código é a seguinte:
public @Interface WHEANOTATION {
String [] value ();
}
Metaannotação / metaannotação
Usado para modificar a anotação. (Você pode visualizar o código -fonte de @Override)
Política de anotação @retention, usada para especificar os domínios que a anotação pode reter
RetentionPolicy.class
Existem no nível do bytecode, mas não são visíveis no nível de execução (padrão)
RetentionPolicy.Runtime
Todos os três níveis são visíveis e podem ser refletidos durante o tempo de execução
RetentionPolicy.Source está disponível apenas no nível do código -fonte e não é visível no nível do bytecode.
@Target especifica o escopo da anotação que está sendo usada
@Documented Write no documento.
@Heritabilidade Herited, as subclasses que herdam essa classe ainda têm as características da classe pai como anotação.
Ex.
As anotações de definição são as seguintes:
A cópia do código é a seguinte:
// Deixe uma anotação ser refletida em tempo de execução
@Retention (retentionpolicy.runtime)
public @interface dbinfo {
String driver () padrão "com.mysql.jdbc.driver";
String url () padrão "url = jdbc: mysql: // localhost: 3306/acadêmico";
String senha () padrão "1234";
String userName () padrão "root";
}
Injeção de reflexão:
A cópia do código é a seguinte:
@Dbinfo
Public Static Connection getConnection () lança exceção {
// Obtenha o código bytecode desta classe
Classe clazz = Demo2.class;
// Obtenha o método público chamado getConnection () nesta classe
// parâmetro 1: nome do método
// Parâmetro 2: o objeto Bytecode correspondente ao parâmetro de tipo de método
Método método = clazz.getMethod ("getConnection", nulo);
// Através deste método, obtenha a anotação definida no método
Dbinfo dbinfo = métod.getannotation (dbinfo.class);
String driver = dbinfo.driver ();
String url = dbinfo.url ();
String user = dbinfo.username ();
String senha = dbinfo.password ();
Class.ForName (Driver);
retornar driverManager.getConnection (URL, usuário, senha);
}