Java自定义注解基础知识
注解分为三类:没有任何元素的注解,有一个元素的注解和有多个元素的注解。
1. Marker注解
这类注解没有任何元素,此类注解仅仅是一个标示。如下所示:
public @interface Good
{
}
2. 单值注解
只接受单值类型,数据成员使用单词value指定。指定成员的语法与声明方法类似。
public @interface Good
{
String value();
}
可以像下面一样使用注解:
@Good("this good")
但是如果数据成员不使用value定义,新定义如下所示:
public @interface Good
{
String description();
}
现在,需要使用下面的注解方式
@Good(description="this good")
注意:数据成员使用默认名称value时候,我们只指定了目标字符串,而省略了成员名称,这次我们需要显示拼写出数据成员的名称description,如果不这么做,编译器将会在编译过程中产生错误。
3. 多值注解
public @interface Good
{
String description();
String target();
}
多值注解的使用方式如下所示:
@Good(description="this good",target="examine")
4. 设置默认值
java允许为任何数据成员指定默认值,这可以使用default关键字来完成。例如:
public @interface Good
{
String description();
String target() default "examine";
}
当使用默认值注解的时候,target成员可以不指定,除非想为target设置不同的值。
5. 注解的定义规则
定义一个注解还是很简单的,需要遵照以下几个规则就可以了:
(1)注解声明以@interface开设,随后是注解的名称。
(2)为了创建注解的参数,需要使用参数的类型声明方法:
方法声明不应包含任何参数;
方法声明不应包含任何throws子句;
方法的返回类型应该为:基本类型,字符串,类,枚举,上述类型的数组。
具体使用方式请参考我的另外一篇博文:
http://www.cnblogs.com/longshiyVip/p/4707519.html
Java自定义注解基础知识的更多相关文章
- java自定义注解知识实例及SSH框架下,拦截器中无法获得java注解属性值的问题
一.java自定义注解相关知识 注解这东西是java语言本身就带有的功能特点,于struts,hibernate,spring这三个框架无关.使用得当特别方便.基于注解的xml文件配置方式也受到人们的 ...
- 第76节:Java中的基础知识
第76节:Java中的基础知识 设置环境,安装操作系统,安装备份,就是镜像,jdk配置环境,eclipse下载解压即可使用,下载tomcat 折佣动态代理解决网站的字符集编码问题 使用request. ...
- java自定义注解注解方法、类、属性等等【转】
http://anole1982.iteye.com/blog/1450421 http://www.open-open.com/doc/view/51fe76de67214563b20b385320 ...
- 【Java面试】基础知识篇
[Java面试]基础知识篇 Java基础知识总结,主要包括数据类型,string类,集合,线程,时间,正则,流,jdk5--8各个版本的新特性,等等.不足的地方,欢迎大家补充.源码分享见个人公告.Ja ...
- java自定义注解类
一.前言 今天阅读帆哥代码的时候,看到了之前没有见过的新东西, 比如java自定义注解类,如何获取注解,如何反射内部类,this$0是什么意思? 于是乎,学习并整理了一下. 二.代码示例 import ...
- java自定义注解实现前后台参数校验
2016.07.26 qq:992591601,欢迎交流 首先介绍些基本概念: Annotations(also known as metadata)provide a formalized way ...
- Java自定义注解的实现
Java自定义注解的实现,总共三步(eg.@RandomlyThrowsException): 1.首先编写一个自定义注解@RandomlyThrowsException package com.gi ...
- Java面试题-基础知识
参考文章:Java面试题-基础知识 基础能力 什么是值传递和引用传递 线程状态有哪些,它们之间是如何转换的 进程与线程的区别,进程间如何通讯,线程间如何通讯? HashMap的数据结构是什么?如何实现 ...
- JAVA核心技术I---JAVA基础知识(工具类Arrays和Collections类)
一:工具类 –不存储数据,而是在数据容器上,实现高效操作 • 排序 • 搜索 –Arrays类 –Collection类 二:Arrays类(处理数组) (一)基本方法 –排序:对数组排序, sort ...
随机推荐
- 深度学习方法:受限玻尔兹曼机RBM(三)模型求解,Gibbs sampling
欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld. 技术交流QQ群:433250724,欢迎对算法.技术.应用感兴趣的同学加入. 接下来重点讲一下RBM模型求解 ...
- Go语言用mock server模拟调用(httptest)
mock是个好东东, 在大项目或大公司,很实用, 因为很多环境不是随时在开发环境可得的. package main import ( "testing" "net/htt ...
- AC日记——红色的幻想乡 洛谷 P3801
红色的幻想乡 思路: 线段树+容斥原理: 代码: #include <bits/stdc++.h> using namespace std; #define maxn 100005 #de ...
- Nmap误报1720端口开放的原因
在使用Nmap扫描服务器开放端口(全连接扫描)时,一直会发现误报1720端口开放,telnet也有时会连接成功.而实际上服务器并未开启此端口.经过查阅资料,确定原因如下: H.323协议在负载中放入了 ...
- 四十七 常用内建模块 XML
XML虽然比JSON复杂,在Web中应用也不如以前多了,不过仍有很多地方在用,所以,有必要了解如何操作XML. DOM vs SAX 操作XML有两种方法:DOM和SAX.DOM会把整个XML读入内存 ...
- JDBC连接执行mysql存储过程报权限错误:User does not have access to metadata required to determine stored procedure parameter types. If rights can not be granted,
分析:JDBC在调用存储过程时不光用户要有execute的权限,还需要对mysql.proc具有访问权限.否则它无法访问metadata 解决方案:给数据库用户赋权,赋执行mysql.proc表的se ...
- iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 8001 -j DNAT --to-destination 172.17.0.5:8080 ! -i docker0: iptables: No chain/target/match by that name.
在docker容器上部署项目后,启动docker容器,出现 iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dpor ...
- linux文件简单操作
1.vim常用快捷键 dd/ndd 删除1行/删除n行 yy/nyy 复制1行/复制n行 p 粘贴 u 撤销 dw/ndw 删除一个单词/删除n个单词 G /nG 到一行尾/第n行尾 :!+命令 ...
- SecureCRT、Xmanager对Linux上传下载文件或文件夹
(1).SecureCRT SecureCRT对Linux上传下载文件或文件夹拥有一个专门的软件SecureFXPortable.对于它来说只有两个的难题,一个是版本问题,尽量去官网下载最近版本:另一 ...
- [BZOJ1305][CQOI2009]跳舞(网络流)
1305: [CQOI2009]dance跳舞 Time Limit: 5 Sec Memory Limit: 162 MBSubmit: 3944 Solved: 1692[Submit][St ...