Tiger 出来已经很长时间了,一直没有时间接触它,今天看了一下它新增加的几个功能还是挺不错的。
范性的支持(Generalize),增强的for循环.自动拆包。enmu的支持,
今天学习了他的 annotation(注释,它也是类型信息的一部分),也叫它元数据(metadata)
系统中定义的有 Override (覆盖父类的方法是用的),Deprecated(不希望用的方法标住)
SupperssWarnings(抑制警告)用于消除 complier warnings(在Tiger中没有实现它)
用法就是@Override,@Deprecated,@SuppressWarnings
(自己定义annotation)需要用到的类有
Retention(定义标记的范围) Document(是否在API文档中列出) Inherited(是否继承到子类),Target(可以用到的范围),
ElementType,RetentionPolicy (这2个CLASS都是enmu type)
自己定义一个
@Document
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@ interface Test{
String value()default "";
}
class TestT{
@Test("ngq")
public void doSomeThing(){//...}
}
在程序中捕获annotation
Class<TestT> cls = TestT.class;
Method method = cls.getMethod("value");
if(method.isAnnotationPresent(Test.class))
Test t=method.getAnnotation(Test.class);//
Annotation[] annotation= method.getAnnotations();