Création d'une nouvelle instance à partir de la classe avec le paramètre constructeur

J'ai une situation où ma classe Java doit créer une tonne de certains types d'objets. Je voudrais donner le nom de la classe des objets qui sont créés en tant que paramètre. En plus, j'ai besoin de donner à la classe créée un paramètre de son constructeur. J'ai quelque chose comme

class Compressor {

    Class ccos;

    public Compressor(Class ccos) {
        this.ccos = ccos;
    }

    public int getCompressedSize(byte[] array) {
        OutputStream os = new ByteArrayOutputStream();
        //the following doesn't work because ccos would need os as its constructor's parameter
        OutputStream cos = (OutputStream) ccos.newInstance();
        //..
    }
}

Avez-vous des idées de comment je pourrais y remédier?

Edit:

Cela fait partie d'un projet de recherche où nous avons besoin d'évaluer les performances de plusieurs compresseurs différents avec plusieurs entrées différentes. Class ccos est un comprimé OutputStream soit à partir de la bibliothèque standard de Java, Apache Compresser les Communes ou lzma-java.

Actuellement, j'ai la suite de ce qui semble bien fonctionner. D'autres idées sont les bienvenus.

OutputStream os = new ByteArrayOutputStream();
OutputStream compressedOut = (OutputStream) ccos.getConstructor(OutputStream.class).newInstance(os);
final InputStream sourceIn = new ByteArrayInputStream(array);

source d'informationauteur lhahne