注解(Annotation)
定义:给类,属性,方法贴一个标签,与注释不同。可以通过反射获取标注内容。
Java内部定义的注解
@Override //检查该方法是否是重写方法。
//如果发现其父类,或者是引用的接口中并没有该方法时,会报编译错误。
@Deprecated //标记过时方法。如果使用该方法,会报编译警告
@SuppressWarnings //指示编译器去忽略注解中声明的警告。
自定义注解
注解只能存在成员变量 语法:数据类型 变量名();
//使用@+注解名称 表示加上了注解,默认存在public
//默认public
public @interface Myan {} 语法
public @interface Myan {
//注解里面有成员变量,使用注解时需要赋值,(name = "xxx")
public String name();
//如果没有传值,就代表name的值为""字符串
public String name() default "";
}
public @interface Myan {
//使用注解时可以直接传值,就代表value = 值
public int value();
}
元注解(标记注解的注解)
一:
Retention //定义元注解的生命周期
@Retention(RetentionPolicy.SOURCE) //表示接下来加了注解的代码只存在源代码里面(.java文件)
@Retention(RetentionPolicy.CLASS) //只存在源代码/编译文件(.class文件)里面,当.class文件加载到jvm中去注解就没有了
@Retention(RetentionPolicy.RUNTIME) //在运行期间都会存在
二:
Target //规定元注解标注的位置
@Target(ElementType.TYPE) // 类、接口(包括注释类型)或枚举声明
@Target(ElementType.FIELD) //标记成员属性上
1.8新增
@Target(ElementType.TYPE_PARAMETER) //标记在泛型<>里面
@Target(ElementType.TYPE_USE) //标记在有返回值的方法上
三:
Documented //代表注解会生成到文档说明里
四: 注解是否可以被继承
Inherited //表示这个注解所有的子类都可以继承过去
执行被注解的方法
import java.lang.reflect.Method;
public class Test2 {
// 执行带注解的方法
public static void main(String[] args) {
Class cls1 = Demo.class;
try {
Object obj = cls1.newInstance();
// 获取里面所有方法
Method[] method = cls1.getDeclaredMethods();
for (Method m : method) {
// 获取该方法上的注解
MyAnno an = m.getAnnotation(MyAnno.class);
if (null != an) {
m.setAccessible(true);
// 执行方法
m.invoke(obj);
}
}
System.out.println(cls1.isAnnotation());
} catch (Exception e) {
e.printStackTrace();
}
}
}
.Properties(读取写入以.properties结尾的文件)
读取配置文件
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Properties;
public class Test1 {
//读取内容
public static void main(String[] args) {
String path = "user.properties";
Properties pt = new Properties();
try {
// 将user.properties配置文件加载到pt对象里面
pt.load(new FileInputStream(path));
// 获取name值,通過key的值来获取 = 后面value值
String name = pt.getProperty("name");
System.out.println(name);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
本文介绍了Java中如何自定义注解,包括注解的定义和成员变量,以及元注解的四个核心规则。同时,讲解了如何执行被注解的方法,并探讨了注解的继承性。此外,还详细阐述了如何读取和写入.properties配置文件。
27万+

被折叠的 条评论
为什么被折叠?



