实现java闭包的另一种形式
记得第一次接触闭包的时候,觉得很奇怪,但从字面上很那理解闭包什么玩意,和闭包有的一比的当属控制反转,真正理解了后觉得就平常了。闭包二字其实是很经典的,闭包代码所表现的东西可不就是一个封闭的、自成一体的功能块吗?简单的说,闭包就是在内部定义的方法,拿到外面去使用。经典的javascript闭包形式如下:
Java代码
Js代码
function f1(){
var i = 20;
function closef(x){
alert(i+x);
}
return closef
}
var s = f1();
s(20);
function f1(){
var i = 20;
function closef(x){
alert(i+x);
}
return closef
}
var s = f1();
s(20);
javascript的这种闭包形式的确相当简洁,类似于c语言的函数指针
众所周知,java实现闭包的形式是内部类,更常用的还是匿名内部类,而这通常还需要定义接口,通过接口的引用来操作内部类对象,从而实现闭包,远没有javascript简洁。这里介绍我在开发中使用的一种java闭包形式,当然还是内部类,我在实现的时候把反射机制加了进来,这么做就是尽量使用起来简单一些。代码如下:
先定义一个接口,接口还是需要的,在以后的闭包使用中,只需要这一个接口。
Java代码
package p;
public interface IMethod {
public Object invoke(Object ... objects );
}
package p;
public interface IMethod {
public Object invoke(Object ... objects );
}
该接口的实现类,这里引入反射:
Java代码
package p;
import java.lang.reflect.Method;
public class MethodObject implements IMethod {  
相关文档:
windows xp下配置JDK环境变量:
1.安装JDK,安装过程中可以自定义安装目录等信息,例如我们选择安装目录为D:\java\jdk1.5.0_08; 2 ......
花了一个多月用Java NIO写了一个定制的HTTP Server,主要是支持我的WeBuzz.IM网页版聊天服务
。
先介绍一下WeBuzz.IM网页聊天服务。
WeBuzz.IM
是一款网页版即时聊天工具,用于帮助用户通过网页和朋友聊天。Gtalk(Google Talk)
、MSN(Windows Live Messenger)
、Yahoo! Messenger(Yahoo! Chat,又称为雅虎通)
......
如何在UltraEdit中使java文件语法高亮显示?
1. UltraEdit官方网站下载所需文件格式的语法方, http://www.ultraedit.com/downloads/extras.html,选择java下载。
2. 选择“高级”->“配置”
3. 选择“编辑器显示”->“语法加亮”,点击“ ......
我在一个印度外包公司工作。我所做的系统大部分是印度程序员写的。
看了他们的代码有个特点给大家评评。
1、他们写的代码比较严谨,比如在循环一个集合前会作null判断,方法类命名也比较规范易懂。
2、他们,注释写的不多,但log写很勤快。
3、他们好像不太喜欢用临时变量,能不用尽量不用。
4、他们的代码如判断一个b ......
1.树集TreeSet
TreeSet类在java.util包中
树集中的结点是按着其存放的数据的字典序一层一层地依次排列 在同一层中的结点从左到右按字典序递增排列
A.构造方法:TreeSet()
B.常用方法
& ......