编写一个类,实现与被包装类相同的接口
定义一个变量,记住被包装对象的引用
定义构造方法,注入被包装对象的引用
对于要改写的方法,写你的代码
对于不需要改写的方法,调用原有对象的对应方法
以下的例子是为readLine这个方法添加行号的例子
public class MyBufferedReader extends BufferedReader{
private int count = 1;
public MyBufferedReader(BufferedReader br){
super(br);
}
//先拿到原有对象的对应方法,判断其返回值后再进行包装
public String readLine() throws IOException {
String data = super.readLine();
if(data==null)
return data;
return count+++data;
}
} |