Devátý domácí úkol

Zkonvertujte třídu CellArray na generickou třídu tak, aby (především typově) prošla níže uvedeným testem. Kód jejích metod neměňte.

class CellArray {
    Cell first = new Cell();
    Cell second = new Cell();
    Cell third = new Cell();
 
    void setA(Object a) {
        third.set(second.get());
        second.set(first.get());
        first.set(a);
    }
 
    Object getA() { return first.get(); }
 
    void setB(Object b) {
        third.set(second.get());
        second.set(b);
    }
 
    Object getB() { return second.get(); }
 
    void setC(Object c) {
        third.set(c);
    }
 
    Object getC() { return third.get(); }
}
 
/** Test **/
 
import java.util.Random;
 
class Cell<E> {
    E elem;
 
    Cell() {}
    void set(E e) { elem = e; }
    E get() { return elem; }
}
 
class Homework9Test {
    public static void main(String[] args) {
        Random rnd = new Random();
        CellArray<Integer, Number, Object> ca = new CellArray<Integer, Number, Object>();
        Integer i1 = rnd.nextInt();
        Integer i2 = rnd.nextInt();
        Integer i3 = rnd.nextInt();
        ca.setA(i1);
        ca.setA(i2);
        ca.setA(i3);
        Object ii1 = ca.getC();
        Number ii2 = ca.getB();
        Integer ii3 = ca.getA();
        assert i1.equals(ii1);
        assert i2.equals(ii2);
        assert i3.equals(ii3);
    }
}

Do repozitáře do souboru homeworks/Homework9.java odevzdávejte třídu CellArray a případné další vámi naprogramované třídy. Neodevzdávejte třídu Cell ani Homework9Test. Termín odevzdání 3. 5. 1:59 ráno (čas podle serveru s repozitáři).

~~DISCUSSION:closed~~

courses/b6b36omo/hw/09/start.txt · Last modified: 2018/10/03 11:13 (external edit)