java自定义注解学习(一)_demo小练习
自定义注解
现在大家开发过程中,经常会用到注解。
比如@Controller 等等,但是有时候也会碰到自定义注解,在开发中公司的记录日志就用到了自定义注解。身为渣渣猿还是有必要学习下自定义注解的。
这篇我们先写一个简单的注解列子,不会立马介绍各种什么元注解。从例子中感受下注解的作用
定义个注解
package com.kevin.annotation;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@Retention(RetentionPolicy.RUNTIME)
public @interface Kevin {
String name() default "kevin";
}
解析并测试这个注解
package com.kevin;
import com.kevin.annotation.Kevin;
@Kevin
public class Test {
public static void showKevin(Class c) {
System.out.println(c.getName());
boolean isExist = c.isAnnotationPresent(Kevin.class);
if (isExist) {
Kevin kevin = (Kevin) c.getAnnotation(Kevin.class);
System.out.println(kevin.name());
}
}
public static void main(String[] args) {
Test.showKevin(Test.class);
}
}
运行结果
com.kevin.Test
kevin
Process finished with exit code 0
总结
上面几句代码,我们已经实现了一个简单的自定义注解,是不是很简单。
大家不要吧注解想想的太复杂,其实任何东西大规模的应用肯定是易用易懂的。
本篇先介绍到这。大家可以先体验下玩玩,我也是刚刚学习。欢迎交流。下篇文章。我们一起学习下注解的基本语法。
关注公众号
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
java之常量折叠
为什么会写着篇博客,因为昨天看了关于final关键字的解析。但是有个问题始终没有得到解决,于是请教了我qq上之前添加的知乎大神。他给我回复的第一条消息:常量折叠。身为渣渣猿的我立马查询了这个概念。这是第一次知道这个概念。知乎大神还给我讲了好多。让我终于明白了这个常量折叠的概念 实例解析 昨天,让我迷惑的代码是下面这段代码 public static void main(String[] args) { String a = "hello2"; final String b = "hello"; String d = "hello"; String c = b + 2; String e = d + 2; System.out.println((a == c)); System.out.println((a == e)); } 这段的执行结果是 true false 我就是不明白为什么第一个返回true呢? 留着这个疑问,我们先了解下常量折叠的概念。来更好的理解上面的代码 常量折叠 常量折叠的概念 常量折叠是一种编译器优化技术。 常量折叠主要指的是编译期常量加减乘除的运算过程会被折叠 对...
-
下一篇
java自定义注解学习(二)_注解详解
上篇文章,我们简单的实现了一个自定义注解,相信大家对自定义注解有了个简单的认识,这篇,这样介绍下注解中的元注解和内置注解 整体图示 内置注解 @Override 重写覆盖 这个注解大家应该经常用到,主要在子类重写父类的方法,比如toString()方法 package com.kevin.demo; public class Demo1 { @Override public String toString(){ return "demo1"; } } @Deprecated 过时 @Deprecated可以修饰的范围很广,包括类、方法、字段、参数等,它表示对应的代码已经过时了,程序员不应该使用它,不过,它是一种警告,而不是强制性的。 package com.kevin.demo; public class Demo1 { @Deprecated public void goHome(){ System.out.println("过时的方法"); } } idea中调用这些方法,编译器也会显示删除线并警告 @SuppressWarning 压制Java的编译警告 @SuppressWar...
相关文章
文章评论
共有0条评论来说两句吧...

微信收款码
支付宝收款码