class ReplaySubject extends Subject<T> {

    public Object[] getValues() {
        @SuppressWarnings("unchecked")
        T[] a = (T[])EMPTY_ARRAY;
        T[] b = getValues(a);
        if (b == EMPTY_ARRAY) {
            return new Object[0];
        }
        return b;

    }

    @SuppressWarnings("unchecked")  ReplaySubject(ReplayBuffer<T> buffer);

}