Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
御承扬
java1
提交
bde4e985
J
java1
项目概览
御承扬
/
java1
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
J
java1
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
bde4e985
编写于
7月 01, 2019
作者:
御
御承扬
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Update
上级
d40b2bcd
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
87 addition
and
2 deletion
+87
-2
src/反射/CellPhone.java
src/反射/CellPhone.java
+26
-0
src/反射/GetConstructorTest.java
src/反射/GetConstructorTest.java
+2
-2
src/反射/PhoneAnnotation.java
src/反射/PhoneAnnotation.java
+23
-0
src/反射/annotationTest.java
src/反射/annotationTest.java
+36
-0
未找到文件。
src/反射/CellPhone.java
0 → 100644
浏览文件 @
bde4e985
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
;
// 属性注释中备注值为“手机厂商”,是否启用默认值
}
src/反射/GetConstructorTest.java
浏览文件 @
bde4e985
...
...
@@ -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
()
{
// 无参构造函数
}
...
...
src/反射/PhoneAnnotation.java
0 → 100644
浏览文件 @
bde4e985
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。
}
src/反射/annotationTest.java
0 → 100644
浏览文件 @
bde4e985
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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录