A.注解:也被称为元数据,为我们在代码中添加信息提供了一种形式化的方法。
注解是众多引入到Java SE5中的重要语言变化之一。提供了完整地描述程序所需的信息。
B.Java中有三种标准注解:@Override @Deprecated @SuppressWarnings
四个元注解:
@Target: 用来定义你的注解将应用于什么地方(方法?域?)
@Retention:用来定义注解在哪一个级别可用(源代码中SOURCE、类文件CLASS、或者运行时RUNTIME)
@Documented:将此注解包含在javadoc中
@Inherited:允许子类继承父类中的注解
C.定义一个注解
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
Public @interface Test{}
@Test定义很像一个借口,其中@Target和@ Retention 叫元注解
@Target:用来定义你的注解将应用于什么地方(方法?域?)
@Retention:用来定义注解在哪一个级别可用(源代码中SOURCE、类文件CLASS、或者运行时RUNTIME)
D.定义另两种种形式的注解
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
Public @interface UseCase{
Public int id();
Public String description() default “no description”
}
注解中的元素不能有不确定的值,也就是说,元素必须要么有默认值,要么在使用注解的时候提供元素的值。
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Constraints {
boolean primaryKey() default false;
boolean allowNull() default true;
boolean unique() default false;
}
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface SQLInteger {
String name() default "";
Constraints constraints() default @Constraints;
}
E.注解处理器 使用反射机制查找注解标志来处理注解,如果没有注解处理器,那注解也没有比注释更有用。
public static void trackUseCases(List<Integer> useCases,Class<?> cl){
for(Method m : cl.getDeclaredMethods()){
UseCase uc = m.getAnnotation(UseCase.class);
if(uc != null){
System.out.println("Found Use Case:" + uc.id() + " " + uc.description() );
useCases.remove(new Integer(uc.id()));
}
}
for(int i : useCases) {
System.out.println("Warning: Missing use case-" + i);
}
}
F.注解元素的类型
所有的基本类型(8种);
String;
Class
Enum
Annotation
以上类型的数组
G.基于注解的单元测试@Unit
前置@Test 表明该方法是单元测试方法。@Test将验证并确保这些方法没有参数,并且返回值是boolean 或者void。使用@Uint测试,可以自己随意命名函数的名字。
对于每一个单元测试,@Unit都会用默认的构造器创建出一个对象,并在该对象上运行测试,然后丢弃该对象。如果类没有默认构造器,你可以使用@TestObjectCreate注解将该方法标记起来,然后@Unit会创建一个对象供使用。
注意,如果使用@TestObjectCreate为每个对象打开了资源,则在测试关闭的时候应该把这些资源关闭。
如果要向单元测试中添加一些额外的域,则可以使用@TestProperty注解。
分享到:
相关推荐
### Thinking in Java 读书笔记知识点总结 #### 一、万事万物皆对象 1. **对象存储位置** - **寄存器**:程序无法直接控制。 - **栈(Stack)**:存储基本类型数据和对象引用,但对象本身不在此处。 - **堆(Heap)...
《Thinking in Java》是Bruce ...以上只是《Thinking in Java》第五部分可能涵盖的部分内容,实际笔记可能还涉及其他高级主题,如反射、注解、并发编程等。通过深入学习这些知识,可以全面提升对Java的理解和应用能力。
例如《Thinking in Java》、《Java核心技术卷》以及Oracle的Java教程,都是深入理解Java的好资源。 通过系统地学习这些知识点,你将能够全面掌握Java JDK 6.0,并为未来的Java开发工作打下坚实的基础。随着技术的...
Java》学习笔记 [TOC] 阅读计划 章节列表 对象导论 一切都是对象 操作符 控制执行流程 初始化与清理 访问权限控制 复用类 多态 接口 内部类 持有对象 通过异常处理错误 字符串 类型信息 泛型 数组 容器深入研究 Java...
通过阅读《Thinking in Java》,你不仅可以掌握Java编程语言,还能了解到软件开发的许多重要原则和最佳实践。这本书适合有一定编程基础的读者,特别是对面向对象编程有兴趣的人群。通过深入学习,你可以提升自己的...
通过阅读《Thinking in Java》并完成其中的练习题,你可以深入理解这些概念,并逐步提升编程能力。笔记部分可能包含了你的思考、理解和对书中例子的扩展,是巩固知识的好工具。定期回顾和更新这些笔记,将有助于你在...
"Mastering Java: 一些旧的Java笔记" 提供了一个深入学习Java的资源,这可能是一个学习者或开发者在阅读《Thinking in Java》一书时所做的笔记。这本书由Bruce Eckel编写,是Java编程领域的一部经典著作,旨在帮助...
这份"thinking-in-spring"的学习笔记,旨在帮助读者全面理解Spring的核心概念、主要功能以及实际应用技巧。下面,我们将详细探讨Spring的主要模块和关键特性。 1. **依赖注入(Dependency Injection,DI)** ...
春天学习笔记 Bean初始化 BeanDefinitionBuilder 新的GenericBeanDefinition Bean的命名(非强制性) BeanNameGenerator AnnotationBeanNameGenerator Bean的别名(一般XML配置) 别名 BeanDefinition的注册 ...
《Thinking in Java》是Bruce Eckel的经典之作,它深入浅出地介绍了Java编程语言的核心概念和技术。本资源包含了这本书第四版的学习笔记和源代码,旨在帮助读者更好地理解和掌握Java编程思想。以下是对这些知识点的...
"spring-in-thinking"这个标题暗示了我们正在深入探讨Spring框架的各个方面,而"在春天思考"可能是指在编程和设计模式上进行创新与深化理解的过程。"spring全家桶"一词通常用来形容Spring框架的众多组件和扩展,包括...