Java注解开发
2016-09-22 11:15
387 查看
Coder.java
package com.lsm.model;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target(ElementType.FIELD)
@Documented
@Retention(RetentionPolicy.RUNTIME)
public @interface Coder {
public String name() default "";
public String language() default "Java";
}
Person.java
package com.lsm.model;
public class Person {
@Coder(name = "TestMan", language = "Scala")
private String skill;
public String getSkill() {
return skill;
}
public void setSkill(String skill) {
this.skill = skill;
}
}
TestProgram.java
package com.lsm.console;
import java.lang.reflect.Field;
import com.lsm.model.Coder;
import com.lsm.model.Person;
public class TestProgram {
public static void main(String[] args) {
Field[] fieldArray = Person.class.getDeclaredFields();
// Field[] fieldArray = Person.class.getFields();
// for (Field f : fieldArray) {
// if (f.getName().equals("skill")) {
// Coder coder = f.getAnnotation(Coder.class);
// System.out.println("Annotation result-- "
// + "name: " + coder.name()
// + "language: " + coder.language());
// }
// }
for (Field f : fieldArray) {
if (f.isAnnotationPresent(Coder.class)) {
Coder coder = f.getAnnotation(Coder.class);
System.out.println("Annotation result-- "
+ "name: " + coder.name() + ", "
+ "language: " + coder.language());
}
}
System.out.println("Done.");
}
}
package com.lsm.model;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target(ElementType.FIELD)
@Documented
@Retention(RetentionPolicy.RUNTIME)
public @interface Coder {
public String name() default "";
public String language() default "Java";
}
Person.java
package com.lsm.model;
public class Person {
@Coder(name = "TestMan", language = "Scala")
private String skill;
public String getSkill() {
return skill;
}
public void setSkill(String skill) {
this.skill = skill;
}
}
TestProgram.java
package com.lsm.console;
import java.lang.reflect.Field;
import com.lsm.model.Coder;
import com.lsm.model.Person;
public class TestProgram {
public static void main(String[] args) {
Field[] fieldArray = Person.class.getDeclaredFields();
// Field[] fieldArray = Person.class.getFields();
// for (Field f : fieldArray) {
// if (f.getName().equals("skill")) {
// Coder coder = f.getAnnotation(Coder.class);
// System.out.println("Annotation result-- "
// + "name: " + coder.name()
// + "language: " + coder.language());
// }
// }
for (Field f : fieldArray) {
if (f.isAnnotationPresent(Coder.class)) {
Coder coder = f.getAnnotation(Coder.class);
System.out.println("Annotation result-- "
+ "name: " + coder.name() + ", "
+ "language: " + coder.language());
}
}
System.out.println("Done.");
}
}
相关文章推荐
- 通过反射机制获取类集合的所有属性值
- Java IO之File类
- 【读书笔记】Java核心技术-基础知识-反射
- Java对象内存存储,引用传递,值传递详细图解
- shiro简单理解及整合springMVC
- Java main方法
- 轻松理解spring IOC
- java泛型详解
- Struts2 - result标签的param标签的name属性用法。
- Struts1工作原理
- 如何maven在eclipse以及在myeclipse中创建项目
- java设计模式-Head First设计模式之观察者模式
- java 中的一些细节知识
- 【Java深入学习系列】之CPU的分支预测(Branch Prediction)模型
- 使用Eclipse开发Java Web过程中Debug调试的使用方法
- V尼熊的java之旅——关键字篇
- JAVA经典算法40题
- java中存储mysql数据库时间类型【date、time、datetime、timestamp】
- Failed to load JavaHL Library. These are the errors that were encountered
- spring 事务管理详解