今天我学习的是注解的第三课(基础)
今天学习了的主要内容:
1.注解使用的一些小解析
2.标记注解
注解使用:
当注解中有且仅有一个元素且元素名称就叫做value
可以使用如下方法赋值:
@注解名(要赋的值)
标记注解:
标记注解和标记接口类似,该注解不具有任何元素
标记接口,是没有任何抽象方法的接口;看似无用,即便实现这样的接口也没有需要实现的方法
但是标记接口有一个重要的作用,即可以将一些实现了该接口的类看似同一个类型;更便于实现多态。
标记注解也类似,虽然本身没有任何属性,只是一个标记而已,但是作用会在接下来的学习中做出阐释。
咕嘟咖啡杨海滨老师 — 《java编程语言高级特性》
TestDefineAnnotation类(主测试类)
package LessonForAnnotation03;
@Date2
public class TestDefineAnnotation
{
public static void main(String[] args)
{
//接下来我们来给我们的自定义注解在使用时赋值
//不能给值赋为null!!!!!!
@Date(a = 1, b = 0.2, c = "我带你们打", d = {
"q","a"},
e = String.class, datetest = DateTest.march,
sw = @SuppressWarnings(value = {
"all" }))
int a;
}
}
/*
* 当注解中有且仅有一个元素且元素名称就叫做value
* 可以使用如下方法赋值:
* @注解名(要赋的值)
*/
@Date2({
"1","2"})//也可以主函数上面中的方法赋值
class TestDefineAnnotation2
{
}
//有一种极端情况,是你想给注解中的数组只赋一个值,并且注解只有一个字符串数组元素,字符串元素名称还是value
@Date2("1")//这种情况你甚至可以省略{}符号
class TestDefineAnnotation3
{
}
Date注解:
package LessonForAnnotation03;
// 注解默认继承至Annotation接口
public @interface Date
{
public int a() default 1;//基本数据类型
public double b() default 2.0;//基本数据类型
String c() default "1234";//字符串
String[] d() default {
"1","2","3"};//数组
Class<?> e() default String.class;//类
DateTest datetest() default DateTest.march;//枚举
SuppressWarnings sw() default @SuppressWarnings(value = {
"all" });//注解
}
Date2注解:
public @interface Date2
{
String[] value() default {
"1"};
}
部分文字来源于:
咕嘟咖啡杨海滨老师 — 《java编程语言高级特性》
在这里十分感谢老师能够给我带来学习的激情.
2020.10.13
可以转载我的学习日记但请注明出处,谢谢。
毕