实现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 {  
相关文档:
一:需要包含的包
import java.security.*;
import java.io.*;
import
java.util.*;
import java.security.*;
import java.security.cert.*;
import sun.security.x509.*
import java.security.cert.Certificate;
import java.security.cert.CertificateFactory;
二:从文件中读取证书
用keytool将 ......
如何在UltraEdit中使java文件语法高亮显示?
1. UltraEdit官方网站下载所需文件格式的语法方, http://www.ultraedit.com/downloads/extras.html,选择java下载。
2. 选择“高级”->“配置”
3. 选择“编辑器显示”->“语法加亮”,点击“ ......
我在一个印度外包公司工作。我所做的系统大部分是印度程序员写的。
看了他们的代码有个特点给大家评评。
1、他们写的代码比较严谨,比如在循环一个集合前会作null判断,方法类命名也比较规范易懂。
2、他们,注释写的不多,但log写很勤快。
3、他们好像不太喜欢用临时变量,能不用尽量不用。
4、他们的代码如判断一个b ......
下载 dom4j-1.6.1.jar。
1: package org.zzp.common.xml.dom4j;
2:
3: import java.io.FileWriter;
4: import java.io.IOException;
5: import org.dom4j.Document;
6: import org.dom4j.DocumentHelper;
7: import org.dom4j.Element;
8: import org.dom4j.io.OutputFormat;
9: impor ......