类中有一个内部接口,一个内部抽象类和一个内部类。
当我调用 OuterClass 的 outerMethod() 方法时,
AKindBiz类的方法只能打印列表的内容。
为什么抽象类(CommonKindBiz)的方法不能打印任何东西?
public class OuterClass {
public void outerMethod( ) throws Exception{
ArrayList<String> list = new ArrayList<String>();
list.add("1111");
list.add("2222");
KindBiz biz = new AKindBiz();
biz.execute(list);
}
public interface KindBiz
{
public void execute( ArrayList<String> inputList) throws Exception;
public void preExec( ArrayList<String> inputList) throws Exception;
public void exec( ArrayList<String> inputList) throws Exception;
public void postExec( ArrayList<String> inputList) throws Exception;
}
abstract public class CommonKindBiz implements KindBiz
{
public void execute( ArrayList<String> inputList) throws Exception{
System.out.println("KindBiz.CommonKindBiz.execute ### inputList1 : " + inputList ); // Nothing printed.
this.preExec(inputList);
this.exec(inputList);
this.postExec(inputList);
}
public void preExec( ArrayList<String> inputList) throws Exception
{
System.out.println("KindBiz.CommonKindBiz.preExec ### inputList : " + inputList ); // Nothing printed.
}
public abstract void exec( ArrayList<String> inputList) throws Exception;
public void postExec( ArrayList<String> inputList) throws Exception
{
System.out.println("KindBiz.CommonKindBiz.postExec ### inputList : " + inputList ); // Nothing printed.
}
}
public class AKindBiz extends CommonKindBiz
{
@Override
public void exec( ArrayList<String> inputList) throws Exception
{
System.out.println("KindBiz.AKindBiz.exec ### inputList : " + inputList ); // "1111", "2222" printed.
}
}
}
提前谢谢你。
我编辑了您的代码以使其编译。
我测试了它,所有行都打印出来了。我不认为有问题。
System.out.prinfln("KindBiz.CommonKindBiz.execute ### inputList1 : " + inputList ); // Nothing printed.
这条线似乎是问题所在。这是println()
.代码中的任何地方都有prinfln()
.用println()
替换它们
更新:
正如 RC 和 subash 指出的那样,您的方法声明它们将采用 2 个参数,但您在调用它们时只给它们 1 个。您需要给他们 2 或更改方法的签名。
请使用 IDE。IDE可以很容易地指出这些错误,例如参数不匹配,并正确描述错误所在以及如何修复它们。