Factory não retornar objeto correto

Ola,
tenho as seguinte classes (não totalmente implementadas para simplificar)

public interface SortList {
    public void sort(List<Integer> list);
}
public class QuickSort implements SortList {

    public QuickSort() {
    }

    @Override
    public void sort(List<Integer> list) {
        //quicksort acontece aqui...
    }
}
public class BubbleSort implements SortList {

    public BubbleSort() {
    }

    @Override
    public void sort(List<Integer> list) {
        bubbleSort(list);
    }

    public static void bubbleSort(List<Integer> list) {
         //  bubbleSort acontece aqui...
    }
}
public class NullSort implements SortList {

    @Override
    public void sort(List<Integer> list) {
        // Não faz nada
    }
}
public class FactorySort {

    public SortList getSort(String sortName) {
        try {
            if (Class.forName(sortName) != null) {
                return  (SortList) Class.forName(sortName).getConstructor(String.class).newInstance();
            } else {
                return new NullSort();
            }
        } catch (ClassNotFoundException | NoSuchMethodException | SecurityException | InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
            System.err.println(e);
            System.out.println("Retornando um NullSort object");
            return new NullSort();
        }
    }
}
public class Client {

    public static void main(String args[]) {
        List<Integer> list = new ArrayList<>();
        list.add(1);
        list.add(30);
        list.add(13);
        list.add(11);
        list.add(44);
        list.add(3);

        FactorySort factory = new FactorySort();

        SortList ordernar = factory.getSort("MergeSort");
        ordernar.sort(list);

        ordernar = factory.getSort("br.com.schumaker.nogof.behavioral.nullobject.example2.QuickSort");
        ordernar.sort(list);

        ordernar = factory.getSort("QuickSort");
        ordernar.sort(list);

        ordernar = new QuickSort();
        ordernar.sort(list);
    }
}

Então, não consigo retornar o objeto certo a partir da FactorySort, mesmo passando o classe com o pacote inteiro como fazemos com as classe de conexão de banco de dados, alguma dica?

Grato,
HS

Achei o erro!!!

if (Class.forName(sortName) != null) {  
                return  (SortList) Class.forName(sortName).getConstructor(String.class).newInstance();  
            } else {  
                return new NullSort();  
            }  

replace to:

if (Class.forName(sortName) != null) {  
                return  (SortList) Class.forName(sortName).getConstructor().newInstance();  
            } else {  
                return new NullSort();  
            }