提交 bde4e985 编写于 作者: 御承扬

Update

上级 d40b2bcd
package 反射;
// !/usr/bin/env jdk1.8
// encoding:utf-8
//@software:IntelliJ IDEA
//@pack:反射
//@user:彭友聪
//@date:2019/6/30
//@time:21:01
//@project:IDEA_JAVA
//@file:CellPhone.java
//Author:御承扬
//email:2923616405@qq.com
public class CellPhone {
@PhoneAnnotation(remarks = "品牌型号")
public String brdMdl; // 属性注释中的备注值为“品牌型号”,是否启用为默认值
@PhoneAnnotation(remarks = "价格")
public double price; // 属性注释中的备注值为“价格”,是否启用为默认值
@Deprecated // 将此属性设置为过时
@PhoneAnnotation(remarks = "电池接口", enable = false)
public String batteryInter; // 属性注释中备注值为“电池接口”,是否启用为不启用
@PhoneAnnotation(remarks = "手机厂商")
String produceArea; // 属性注释中备注值为“手机厂商”,是否启用默认值
}
......@@ -13,7 +13,7 @@ package 反射;
//email:2923616405@qq.com
import org.jetbrains.annotations.Contract;
public class GetConstructorTest {
String s; // 定义一个字符串变量
......@@ -22,7 +22,7 @@ public class GetConstructorTest {
/**
* 默认构造方法
*/
@Contract(pure = true)
private GetConstructorTest() { // 无参构造函数
}
......
package 反射;
// !/usr/bin/env jdk1.8
// encoding:utf-8
//@software:IntelliJ IDEA
//@pack:反射
//@user:彭友聪
//@date:2019/6/30
//@time:20:56
//@project:IDEA_JAVA
//@file:PhoneAnnotation.java
//Author:御承扬
//email:2923616405@qq.com
import java.lang.annotation.*;
@Target( ElementType.FIELD ) // 注解用于成员属性
@Retention( RetentionPolicy.RUNTIME ) // 在运行时保留
public @interface PhoneAnnotation { // 创建一个名为 “手机信息” 的注解
public String remarks() default " "; // 备注,默认值为空白字符串
public boolean enable() default true; // 是否启用,默认值为 true。
}
package 反射;
// !/usr/bin/env jdk1.8
// encoding:utf-8
//@software:IntelliJ IDEA
//@pack:反射
//@user:彭友聪
//@date:2019/6/30
//@time:21:16
//@project:IDEA_JAVA
//@file:annotationTest.java
//Author:御承扬
//email:2923616405@qq.com
import java.lang.reflect.Field;
public class annotationTest {
private annotationTest(){
}
public static void main(String[] args) {
Class<CellPhone> c = CellPhone.class; // 创建反射对象
Field[] fields = c.getDeclaredFields(); // 获取所有类中的所有属性
// 遍历属性数组
for (Field field : fields) {
// 判断 CellPhone 类中是否具有 PhoneAnnotation 类型的注解
if (field.isAnnotationPresent( PhoneAnnotation.class )) {
// 获取指定类型的注解
PhoneAnnotation phoneAnnotation = field.getAnnotation( PhoneAnnotation.class );
System.out.println( field.getName()+"属性注解:备注="+phoneAnnotation.remarks()+",是否有效="+phoneAnnotation.enable() );
}
}
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册