public class demo1 {
//@suppresswarnings({ "deprecation", "unused" })
@suppresswarnings("all")
public void fun()
{
int i = 5;
system.out.println("hello");
system.out.println(new date().tolocalestring());
}
}
class tests extends demo1
{
@override
public void fun()
{
super.fun();
}
@deprecated
public void tt()
{
system.out.println(new date().tolocalestring());
}
}
声明一个注解 @interface 注解名{}
public @interface myannotation{}
注解它的本质就是一个接口,这个接口需要继承 annotation接口。
public interface myannotation extends java.lang.annotation.annotation {
}
注解的属性类型:
1.基本类型
2.string
3.枚举类型
4.注解类型
5.class类型
6.以上类型的一维数组类型
具体是怎样定义的呢,我们看代码:
public @interface myanno1 {
//注解中定义的都是属性
int age() default 20;
string[] name() default "hehe";
string value() default "haha";
love love();
//myanno2 anno();
//public static final int num = 5;//可以
//public abstract void fun();//error
}
使用自定义注解:
public class demo2 {
//@myanno1(age=25,name={"jack","lucy"},value="zhengzhi")
//@myanno1(value="zhengzhi")
@myanno1(value="zhengzhi",love=love.eat)
public void tests()
{
}
}
import java.lang.annotation.retention;
import java.lang.annotation.retentionpolicy;
//元注解: 用来注解注解的
@retention(retentionpolicy.runtime)
public @interface mytest {
long timeout() default integer.max_value;//设置超时时间的
}
这是我们使用注解的类:
public class dbcrud {
@mytest(timeout=1000000)
public void addtest()
{
system.out.println("addtest方法执行了");
}
@mytest
public void updatetest()
{
system.out.println("updatetest方法执行了");
}
}