对Java注解(Annotation)初步的认识

----------------------android培训、java培训、期待与您交流! ----------------------

为注解增加属性

例如:

 

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

@Retention(RetentionPolicy.RUNTIME)

public @interface AnnotationTest {

String color();
}

color()方法就是注解的属性,他要求应用这个注解的类上的注解提供一个String类型的返回值。

比如:

 

@AnnotationTest(color ="red")
publicclass TestAnnotation {

publicstaticvoid main(String[] args) {
if(TestAnnotation.class.isAnnotationPresent((AnnotationTest.class))){
AnnotationTest test = (AnnotationTest)TestAnnotation.class.getAnnotation(AnnotationTest.class);
System.out.println(test.color());

}
}
}

有些注解的属性在应用的时候可以不写属性和“=”,比如只写value属性的时候

比如:

 

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

@Retention(RetentionPolicy.RUNTIME)

public @interface AnnotationTest {
String value();
}

@AnnotationTest("red")
publicclass TestAnnotation {
publicstaticvoid main(String[] args) {
if(TestAnnotation.class.isAnnotationPresent((AnnotationTest.class))){
AnnotationTest test = (AnnotationTest)TestAnnotation.class.getAnnotation(AnnotationTest.class);
System.out.println(test.value());
}
}
}

还可以为属性指定缺省值:

 

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

@Retention(RetentionPolicy.RUNTIME)

public @interface AnnotationTest {

String color() default"blue";
String value();
}

@AnnotationTest("red")
publicclass TestAnnotation {

publicstaticvoid main(String[] args) {
if(TestAnnotation.class.isAnnotationPresent((AnnotationTest.class))){
AnnotationTest test = (AnnotationTest)TestAnnotation.class.getAnnotation(AnnotationTest.class);
System.out.println(test.color());
System.out.println(test.value());
}
}

}

如果不指定color()缺省@AnnotationTest()中既不能省略value=,也不能省略color="";

 

 

为注解增加高级属性

 

数组属性

 

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

@Retention(RetentionPolicy.RUNTIME)

public @interface AnnotationTest {
int[] intArray();
}


@AnnotationTest(intArray={1,2,3})

publicclass TestAnnotation {

publicstaticvoid main(String[] args) {
if(TestAnnotation.class.isAnnotationPresent((AnnotationTest.class))){
AnnotationTest test = (AnnotationTest)TestAnnotation.class.getAnnotation(AnnotationTest.class);
for(int i:test.intArray()){
System.out.println(i);
}
}
}

}

如果数组的属性值只有一个时,赋值时可以省略大括号

 

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

@Retention(RetentionPolicy.RUNTIME)

public @interface AnnotationTest {
int[] intArray();
}


@AnnotationTest(intArray={1,2,3})

publicclass TestAnnotation {

publicstaticvoid main(String[] args) {
if(TestAnnotation.class.isAnnotationPresent((AnnotationTest.class))){
AnnotationTest test = (AnnotationTest)TestAnnotation.class.getAnnotation(AnnotationTest.class);
for(int i:test.intArray()){
System.out.println(i);
}
}
}

}

枚举属性

 

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

@Retention(RetentionPolicy.RUNTIME)

public @interface AnnotationTest {
enum color{red,blue}
color value();
}
@AnnotationTest(color.red)
publicclass TestAnnotation {}

----------------------android培训java培训、期待与您交流! ----------------------

详细请查看:http://edu.csdn.net/heima

转载于:https://www.cnblogs.com/1350995917ding/archive/2011/09/10/2173122.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/475516.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode 789. 逃脱阻碍者(曼哈顿距离)

1. 题目 你在进行一个简化版的吃豆人游戏。 你从 (0, 0) 点开始出发,你的目的地是 (target[0], target[1]) 。地图上有一些阻碍者,第 i 个阻碍者从 (ghosts[i][0], ghosts[i][1]) 出发。 每一回合,你和阻碍者们可以同时向东,西&…

ACDSee Photo Manager 12 中文绿色版

用WinRAR解压即玩,无需安装。可以拷贝到USB硬盘,便于携带 凭借易于使用且速度极快的特点,ACDSee 12提供了整理相片、优化拍摄以及与亲朋好友分享往事所需的全部功能。 幻灯片浏览 支持幻灯片浏览图片,并支持背景音乐和多种多样的图…

排序算法 - 6种 - 超炫的动画演示 - Python实现

1.冒泡排序 思路:遍历列表,每一轮每次比较相邻两项,将无序的两项交换,下一轮遍历比前一轮比较次数减1。 def bubble_sort(a_list):for passnum in range(len(a_list)-1, 0, -1):for i in range(passnum):if a_list[i] > a_list…

LeetCode 565. 数组嵌套

1. 题目 索引从0开始长度为N的数组A,包含0到N - 1的所有整数。 找到最大的集合S并返回其大小,其中 S[i] {A[i], A[A[i]], A[A[A[i]]], ... }且遵守以下的规则。 假设选择索引为i的元素A[i]为S的第一个元素,S的下一个元素应该是A[A[i]]&…

因子分析模型 - Python 做因子分析简直比 SPSS 还简单 - ( Python、SPSS)

为什么? SPSS 那么简单还免费,为什么还要用 Python 做因子分析(factor analysis)呢?工作狗表示,建模的目的是要卖钱的,也就是要嵌入到公司开发的产品上去,用 Python 写因子分析&…

缺失值处理 - 拉格朗日插值法 - Python代码

目录 缺失值处理 拉格朗日差值法的理论基础 拉格朗日插值法代码实现 其他数据预处理方法 缺失值处理 处理缺失值常用的办法可分为三类:删除记录、数据插补、不处理。 其中常见的数据插补法有: 如果通过删除小部分的数据就可以达到既定的目标&#…

做po_requisitions_interface_all接口开发问题

po_requisitions_interface_all这个接口表的字段charge_account_id来源于: 1、组织参数的Material Account 2、工单类型的Outside Processing Account 转载于:https://www.cnblogs.com/songdavid/archive/2011/09/19/2181757.html

[Hands On ML] 3. 分类(MNIST手写数字预测)

文章目录1. 数据预览2. 数据集拆分3. 二分类4. 性能评估4.1 交叉验证4.2 准确率、召回率4.3 受试者工作特征(ROC)曲线5. 多分类6. 误差分析6.1 检查混淆矩阵本文为《机器学习实战:基于Scikit-Learn和TensorFlow》的读书笔记。 中文翻译参考 …

支持向量机 - 从原理到算法的实现

思想:寻找能够成功分开两类样本并且具有最大分类间隔的最优超平面。 1.原理解析 空间中任何一个平面的方程都可以表示为wxb 0,如上图,设最优超平面方程H为wxb0,支持向量x-到H的距离为,要使分类间隔最大,即该距离最大,而该距离只与…

Struts2初始化过程代码分析

根据web.xml的配置 调用FilterDispatcher.init(FilterConfig filterConfig) 1. 创建org.apache.struts2.Dispatcher&#xff0c;并调用init()方法 1.1. 创建com.opensymphony.xwork2.config.ConfigurationManager,其中属性List<ContainerProvider> containerProviders存放…

LeetCode 1292. 元素和小于等于阈值的正方形的最大边长(DP)

1. 题目 给你一个大小为 m x n 的矩阵 mat 和一个整数阈值 threshold。 请你返回元素总和小于或等于阈值的正方形区域的最大边长&#xff1b; 如果没有这样的正方形区域&#xff0c;则返回 0 。 示例 1&#xff1a; 输入&#xff1a;mat [[1,1,3,2,4,3,2],[1,1,3,2,4,3,2],[…

从这十大算法开始学习机器学习与建模

本文介绍了机器学习新手需要了解的 10 大算法&#xff0c;包括线性回归、Logistic 回归、朴素贝叶斯、K 近邻算法等。 在机器学习中&#xff0c;有一种叫做「没有免费的午餐」的定理。简而言之&#xff0c;它指出没有任何一种算法对所有问题都有效&#xff0c;在监督学习&…

SQL Server中行列转换 Pivot UnPivot

PIVOT用于将列值旋转为列名&#xff08;即行转列&#xff09;&#xff0c;在SQL Server 2000可以用聚合函数配合CASE语句实现 PIVOT的一般语法是&#xff1a;PIVOT(聚合函数(列) FOR 列 in (…) )AS P 完整语法&#xff1a; table_source PIVOT( 聚合函数&#xff08;value_col…

LeetCode 835. 图像重叠

1. 题目 给出两个图像 A 和 B &#xff0c;A 和 B 为大小相同的二维正方形矩阵。&#xff08;并且为二进制矩阵&#xff0c;只包含0和1&#xff09;。 我们转换其中一个图像&#xff0c;向左&#xff0c;右&#xff0c;上&#xff0c;或下滑动任何数量的单位&#xff0c;并把…

数据标准化 - scale() - Python代码

标准化 去均值&#xff0c;方差规模化 数据分析的过程中&#xff0c;比如线性规划这一类的分析&#xff0c;如果有些特征的数值远远高于或低于其他数值&#xff0c;通常称之为独立点、异常值或噪点&#xff0c;那么对于受噪点影响较大的模型就无法正确地去学习其他特征。 St…

LeetCode 813. 最大平均值和的分组(DP)

1. 题目 我们将给定的数组 A 分成 K 个相邻的非空子数组 &#xff0c;我们的分数由每个子数组内的平均值的总和构成。 计算我们所能得到的最大分数是多少。 注意我们必须使用 A 数组中的每一个数进行分组&#xff0c;并且分数不一定需要是整数。 示例: 输入: A [9,1,2,3,9…

.NET 动态脚本语言Script.NET系列文章汇总 非常精彩的应用举例

对于Script.NET,我已经写了三篇文章来介绍它&#xff0c;文章汇总如下 .NET 动态脚本语言Script.NET 入门指南 Quick Start .NET 动态脚本语言Script.NET 开发指南 .NET 动态脚本语言Script.NET 应用举例 希望这三篇文章能帮助你了解Script.NET。 下面的例子&#xff0c;继续讲…

异常值处理 - iterrows()对 DataFrame 进行遍历,并修改遍历中的异常值 - Python代码

先要有一个很简单的被命名为 data 的表&#xff1a; 第三列是一个名曰周杰伦的人历年来每个月的月薪&#xff0c;其中2016年月薪10万&#xff0c;纵观他历年来的月薪基本不超过3万&#xff08;显然他不是我的偶像胖伦&#xff09;&#xff0c;因此对于这个人来说月薪10万是有些…

LeetCode 44. 通配符匹配(DP)

1. 题目 给定一个字符串 (s) 和一个字符模式 (p) &#xff0c;实现一个支持 ? 和 * 的通配符匹配。 ? 可以匹配任何单个字符。* 可以匹配任意字符串&#xff08;包括空字符串&#xff09;。 两个字符串完全匹配才算匹配成功。 说明: s 可能为空&#xff0c;且只包含从 a-…

HtmlAgilityPack/xpath

【转载】HTML解析利器HtmlAgilityPack在网上发现了一个.NET下的HTML解析类库HtmlAgilityPack。HtmlAgilityPack是一个支持用XPath来解析HTML的类库&#xff0c;在花了一点时间学习了解HtmlAgilityPack的API和XPath之后&#xff0c;周公就做了一个简单的工具完成了这个功能&…