Annotation注释

Annotation,即注释,使用注释的方式加入一些程序的信息。

在JDK1.5之后,系统已经建立了三个内建的Annotation类。

内建注解:

  • @Override 表示方法覆写的正确性
  • @Deprecated 表示方法不建议使用,程序编译不会出错,但会出现安全警告
  • @SuppressWarnings 当程序出现安全警告时,可以使用其进行压制,可以同时压制多个安全警告信息,以数组的形式标记

示例:

package study1106;

class Person{
	public void saySomething(String info) {//定义一个方法
		System.out.println("人类说一些什么   ...");
	}
}
/**
 * @override 表示方法覆写的正确性
 * 方法重写:子类访问权限必须比父类更大;返回值必须相同;方法名必须相同;参数必须相同
 * @author SUMMER
 */
public class Student extends Person {
	@Override	//覆写父类中的方法可以使用Override作为标记
	public void saySomething(String info) {
		System.out.println("学生说一些什么");
	}
	/**
	 * @Deprecated 表示不建议使用的方法,程序不会出错,但会出现安全警告信息
	 */
	@Deprecated
	public void sayDeprecated() {
		System.out.println("不建议使用的方法");
	}
}
package study1106;

public class AnnMain {
	@SuppressWarnings(value = { "deprecation" })//使用SuppressWarnings压制不建议使用的警告
	public static void main(String[] args) {
		Student student = new Student() ;
		student.sayDeprecated();//使用了不建议使用的方法
	}
}

自定义Annotation

可以使用固定格式自定义注解的形式定义自己想要的注解内容

[ 访问权限 ] @interface自定义名称 {

数据类型变量名称 ();

}

定义一个可以在程序中直接使用的自定义Annotation

package study1106;
/**
 * 自定义一个Annotation
 * @author SUMMER
 */
public @interface MyAnnotationOne {

}

还可以向自定义Annotation中设置属性

package study1106;

/**
 * 自定义一个可以设置属性的Annotation
 * @author SUMMER
 */
public @interface MyAnnotationTwo {
	public String value();
}
package study1106;

@MyAnnotationTwo(value = "summer")
public class MyAnnotationTwoTest {

}


可以向自定义Annotation中设置多个属性

public @interface MyAnnotationThree {
	public String key();//定义第一个接受属性的方法
	public String value();//定义第二个接受属性的方法
}
@MyAnnotationThree(key = "summer" , value = "SUMMER")
public class MyAnnotationThreeTest {

}


可以向自定义Annotation中设置一个数组的形式

public @interface MyAnnotationFour {
	public String[] values() ;//定义一个string数组用来接收值
}
@MyAnnotationFour(values = { "SUMMER","summer" })
public class MyAnnotationFourTest {

}


还可以使用default表示设置一个默认内容

public @interface MyAnnotationSix {
	public String value () default "summer" ;//使用default定义默认值
}
@MyAnnotationSix
public class MyAnnotationSixTest {

}

还可以使用枚举赋值给Annotation

public enum AnnotationValues {
	SUMMER,ZHANG,XIAO,FAN;//定义一个枚举类
}
public @interface MyAnnotationSeven {
	public AnnotationValues values() default AnnotationValues.SUMMER;//将枚举类中的内容设置为默认内容
}
@MyAnnotationSeven
public class MyAnnotationSevenTest {

}

Retention和RetentionPolicy

在Annotation中,我们可以使用Retention定义一个Annotation的保存范围,Retention的范围取值具体由RetentionPolicy定义

RetentionPolicy定义了三种取值范围

  • source 保存在源代码中 .java
  • class 保存于源代码中,还会在字节码文件中存在 .java&.class
  • RUNTIME 保存在源码和字节码文件中,运行时可以通过反射获取

@Retention(value = RetentionPolicy.RUNTIME)//定义一个Annotation的保存范围
public @interface MyAnnotationOne {

}

使用反射简单获取类中的注释信息

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

@Target(value = ElementType.TYPE)//定义Annotation只能作用在类上
@Retention(value = RetentionPolicy.RUNTIME)//定义Annotation可以在反射中被获取
public @interface MyAnnotationSeven {
	public AnnotationValues values() default AnnotationValues.SUMMER;
}
@MyAnnotationSeven
public class MyAnnotationSevenTest {
	public static void main(String[] args) {
		Class<?> clazz = MyAnnotationSevenTest.class ;
		Annotation annotation  = clazz.getAnnotation(MyAnnotationSeven.class);
		System.out.println(annotation);
	}
}

延伸:Java中内建的Annotation的取值范围

  • Override @Retention(value = SOURCE),只能在源文件中出现
  • SuppressWarnings @Retention(value = SOURCE),只能在源文件中出现
  • Deprecated @Retention(value = RUNTIME),可以在执行时出现

元注释

之前定义的Annotation可以在任何地方使用,如果要限制使用范围,则可以使用元注释为注释添加注释,改变其属性,主要有@target,@Documented,@Inherited

  • @Target 定义注释使用的范围,如类,方法,属性等,范围值由ElementType类定义常用字段
  • @Documented 可以用在任何Annotation上使用,可以通过其为JavaDOC文档设置一些说明信息
  • @Inherited 表示一个Annotation可以被继承





















  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: OxyPlot Annotation是一个在OxyPlot库中功能强大的注释工具。注释是在图表上添加额外信息以增强数据可视化的一种方式。 使用OxyPlot Annotation,我们可以在图表上添加文本、线条、箭头、圆形等注释元素。这些注释元素可以帮助我们更好地描述和解释图表中的数据。 例如,我们可以使用注释添加一个标题来说明该图表的主题或目的。我们可以选择注释的位置、字体、大小和颜色等样式,以及背景色和边框等外观效果。 除了文本注释,我们还可以使用注释绘制线条,比如表示趋势线或连接两个数据点之间的关系。线条注释有许多样式和参数可以定制,例如线的颜色、线宽、线型和箭头的形状等。 另外,我们还可以使用注释绘制圆形或矩形等形状。这些形状可以用来突出显示某个数据点或数据区域,或者用来标记某个特殊事件发生的位置。 总之,OxyPlot Annotation提供了丰富的注释功能,使我们能够更好地展示和解释数据。通过使用不同的注释元素和样式,我们可以设计出具有吸引力和易读性的图表,帮助用户更好地理解和分析数据。 ### 回答2: OxyPlot Annotation是一个功能强大的注释工具,可以在OxyPlot图表中添加文本、箭头、线条等。它提供了一种方便的方式来标记和注释图表上的特定区域或数据点。 通过OxyPlot Annotation,用户可以在图表中添加静态或动态的注释,以便更好地理解数据的含义。这些注释可以用于指示特定数据点或趋势、说明数据变化的原因、提示特定事件的发生等。 使用OxyPlot Annotation,用户可以自定义注释的外观和位置。例如,可以调整文本的颜色、字体、大小和对齐方式;可以设置箭头的样式、宽度和长度;可以绘制自定义的线条并将其连接到图表上的任何位置。 除了静态注释,OxyPlot Annotation还支持动态注释。用户可以根据特定的事件或条件,在图表上动态地添加、更新或删除注释。这使得用户可以根据数据的变化自动更新注释,以便更好地呈现动态或实时的数据。 总之,OxyPlot Annotation是一个非常实用的工具,能够让用户在OxyPlot图表中添加各种注释,以便更好地理解和展示数据。无论是在科学研究、数据可视化、教育培训还是其他领域,OxyPlot Annotation都能为用户提供强大而灵活的注释功能。 ### 回答3: OxyPlot是一个用于绘制图形和图表的开源.NET绘图库。Annotation注释)是OxyPlot中的一个重要功能,用于向绘图中添加额外的注释信息,以便更好地展示数据。 OxyPlot中的Annotation提供了多种类型的注释,包括文本注释、线条注释、矩形注释、椭圆注释等。通过调整注释的位置、大小、颜色、字体等属性,我们可以将注释放置在适当的位置,并与图形数据进行关联。 首先,我们可以使用文本注释来添加带有说明或说明的文字。通过指定文字的位置、大小、颜色等属性,我们可以将文字注释放置在图形的特定位置,并使其与相应的数据点相关联。 其次,线条注释可以用于在图形中添加直线或曲线。通过指定线条的起始点和终点,以及颜色、宽度等属性,我们可以将线条注释放置在图形中,并以可视化方式突出显示数据之间的关联。 矩形注释和椭圆注释可以用于在图形中创建一个矩形或椭圆形区域。通过指定其位置、大小、颜色等属性,我们可以将矩形或椭圆注释放置在图形中的指定区域,并突出显示该区域的特定数据。 综上所述,OxyPlot中的Annotation提供了丰富的注释功能,能够帮助我们更好地理解和分析绘图数据。通过使用不同类型的注释对象,并设置其属性,我们可以轻松地将注释添加到图表中,并使其与相应的数据点或数据区域相关联。这样,我们就能够更直观地呈现数据,并更好地传达数据的含义。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值