类型注解

装饰器

大城市里の小女人 提交于 2020-11-08 18:18:45
一、装饰器 In [1]: def fn(): ...: '''this is fn''' ...: In [2]: help(fn) Help on function fn in module __main__: fn() this is fn In [4]: fn.__doc__ # 存储函数的文档 Out[4]: 'this is fn' In [5]: fn.__name__ # 存储函数的名字 Out[5]: 'fn' In [6]: dir(fn) # 查看fn 所有的 内嵌方法 Out[6]: ['__annotations__', '__call__', '__class__', '__closure__', '__code__', '__defaults__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__get__', '__getattribute__', '__globals__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__kwdefaults__', '__le__', '__lt__', '__module__', '__name__', '__ne__

Java 8新特性探究(四)类型注解 复杂还是便捷

两盒软妹~` 提交于 2019-11-28 14:06:51
本文将介绍java 8的第二个特性:类型注解。 注解大家都知道,从java5开始加入这一特性,发展到现在已然是遍地开花,在很多框架中得到了广泛的使用,用来简化程序中的配置。那充满争议的类型注解究竟是什么?复杂还是便捷? 什么是类型注解 在java 8之前,注解只能是在声明的地方所使用,比如类,方法,属性;java 8里面,注解可以应用在任何地方,比如: 创建类实例 new @Interned MyObject(); 类型映射 myString = (@NonNull String) str; implements 语句中 class UnmodifiableList<T> implements @Readonly List<@Readonly T> { ... } throw exception声明 void monitorTemperature() throws @Critical TemperatureException { ... } 需要注意的是,类型注解只是语法而不是语义,并不会影响java的编译时间,加载时间,以及运行时间,也就是说,编译成class文件的时候并不包含类型注解。 类型注解的作用 先看看下面代码 Collections.emptyList().add("One"); int i=Integer.parseInt("hello"); System