今天在写一个工具类时想为使用者提供一个更加方便简单的操作,就是可以在一条语句中多次执行同一个实例的多个方法,比如:
new MyCalss().add(12).add(2).add(4).add(5)
类似这样的,刚开始打算用静态却发现不能解决多个实例的问题。后来无意中查看到一些开源框架的代码中有这样的操作,比如JSONlib中的JSONBuilder类,就可以这样操作,查看源码发现可以在方法中直接使用return this;来返回当前实例,呵呵,不错,这样一来问题就好办很多了~~
比如我想在一个类中提供使用者多次来添加一个字符串,那么就可以这样做:
package common.utils;
public class MyTest
{
private List<String> array;
public MyTest()
{
this.array = new ArrayList<String>();
}
public MyTest add(String value)
{
this.array.add(value);
return this;
}
public static void main(String[] args)
{
new MyTest().add("你好!").add("大家好!").add("世界好!");
}
}
主要是代码中红色的这一段,通过return this;来返回当前实例的引用!这样我们就可以应用这样的特性来做更多有趣的处理~~~