在阅读了c#的隐藏特性之后,我想知道Java的隐藏特性有哪些?
当前回答
实例变量的Final:
对多线程代码非常有用,它使争论实例状态和正确性变得容易得多。在工业环境中还没见过很多,在java类中也没想过。
静态{东西;}:
用于初始化静态成员(我也喜欢用静态方法来做它(因为它有一个名称)。没有思想。
其他回答
函子很酷。它们非常接近于函数指针,而这在Java中是不可能的。
Java中的函子
我知道Java 6包括脚本支持,但我最近才发现jrunscript, 它可以交互式地解释和运行JavaScript(以及其他脚本语言,如Groovy),有点像Ruby中的Python shell或irb
静态导入可以“增强”语言,这样你就可以以类型安全的方式做一些漂亮的文字工作:
List<String> ls = List("a", "b", "c");
(也可以做映射,数组,集)。
http://gleichmann.wordpress.com/2008/01/13/building-your-own-literals-in-java-lists-and-arrays/
更进一步说:
List<Map<String, String>> data = List(Map( o("name", "michael"), o("sex", "male")));
它并不是完全隐藏的,但反射是非常有用和强大的。使用简单的class . forname("…"). newinstance()是很好的,其中类类型是可配置的。编写这种工厂实现很容易。
字符串参数化类工厂。
Class.forName( className ).newInstance();
从部署jar文件中加载资源(属性文件,xml, xslt,图像等)。
this.getClass().getClassLoader().getResourceAsStream( ... ) ;
推荐文章
- 在流中使用Java 8 foreach循环移动到下一项
- 访问限制:'Application'类型不是API(必需库rt.jar的限制)
- 用Java计算两个日期之间的天数
- 如何配置slf4j-simple
- 在Jar文件中运行类
- 带参数的可运行?
- 我如何得到一个字符串的前n个字符而不检查大小或出界?
- 我可以在Java中设置enum起始值吗?
- Java中的回调函数
- c#和Java中的泛型有什么不同?和模板在c++ ?
- 在Java中,流相对于循环的优势是什么?
- Jersey在未找到InjectionManagerFactory时停止工作
- 在Java流是peek真的只是调试?
- Recyclerview不调用onCreateViewHolder
- 将JSON字符串转换为HashMap