简体   繁体   English

嵌套类,实现接口对象

[英]Nested class, implemented interface object

I want to create an object KalkulatorI.AccumulatorI in a JUnit test case.我想在 JUnit 测试用例中创建一个对象KalkulatorI.AccumulatorI When I create Kalkulator.Accumulator it's ok ( Kalkulator.Accumulator t2 = new Kalkulator().new Accumulator() ).当我创建Kalkulator.Accumulator就可以了( Kalkulator.Accumulator t2 = new Kalkulator().new Accumulator() )。 How can I create such a interface object?如何创建这样的接口对象? I tried:我试过:

KalkulatorI.AccumulatorI t = new KalkulatorI.AccumulatorI();

or或者

KalkulatorI.AccumulatorI t = new KalkulatorI().new AccumulatorI();

but it doesn't work.但它不起作用。

AccumulatorI.java : AccumulatorI.java

public interface AccumulatorI {
    public int getValue();
    public void setValue(int acc);
}

KalkulatorI.java : KalkulatorI.java :

public interface KalkulatorI {
    public void setAccumulatorA(AccumulatorI a);
    public void setAccumulatorB(AccumulatorI a);
}

Kalkulator.java : Kalkulator.java :

public class Kalkulator implements KalkulatorI {

    private AccumulatorI AA;
    private AccumulatorI BB;

    class Accumulator implements AccumulatorI{
        private int acc;

        public int getValue(){
            int res = this.acc;
            return res;
        }

        public void setValue(int acc){
            this.acc=acc;
        }
    }

    public void setAccumulatorA(AccumulatorI a){
        this.AA=a;
    }
    public void setAccumulatorB(AccumulatorI a){
        this.BB=a;
    }
}

You cannot instantiate interface so there is no way to call new AccumulatorI() .您无法实例化接口,因此无法调用new AccumulatorI() Please look at the Oracle's documentation请看Oracle的文档

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM