我需要弄清楚为Filtered Streams动态创建构造函数的方法 我有一节课:
public class Chain1 extends myFilterInputStream
//constructor 1
public Chain1 (InputStream is, RepeatableData data) {
super(is,data.getData(),data.getKey());
}
//constructor 2
public Chain1 (InputStream in, RepeatableData[] data) {
//return new Chain1 (new Chain1 (is, data[1].getData(),data[1].getKey()), data[2].getData(), data[2].getKey());
for (int i=0;i<data.length;i++) {
//create the line above dynamically
}
}
答案 0 :(得分:0)
我认为你必须用像工厂方法之类的东西替换你的第二个构造函数,因为你需要在将链传递给超级构造函数之前构建链。
public static Chain1 createChain1(InputStream in, RepeatableData[] data){
if(data == null || data.length == 0){
// handle invalid params
}
InputStream nextStream = in;
for (int i = 0; i < data.length; i++) {
nextStream = new Chain1(nextStream, data[i]);
}
return (Chain1)nextStream;
}