-1

外部类中有内部接口、内部抽象类和内部类。

当我调用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.
        }

    }

}

先感谢您。

4

2 回答 2

0
System.out.prinfln("KindBiz.CommonKindBiz.execute ### inputList1 : " + inputList ); // Nothing printed.  

那条线似乎是问题所在。它是println()。在您的代码中到处都有prinfln(). 将那些替换为println()

更新:
正如 RC 和 subash 所指出的,您的方法声明它们将采用 2 个参数,但您在调用它们时只给它们 1。您需要给他们 2 或更改您的方法的签名。

请使用 IDE。IDE 可以很容易地指出这些错误,例如参数不匹配,并正确描述错误以及如何修复它们。

于 2013-11-14T06:52:38.090 回答
0

我编辑了您的代码以使其编译。

我测试了它,所有行都打印出来了。我不相信有问题。

于 2013-11-14T06:59:17.063 回答