Método reutilizável para transformar Iterable <T> em T []?

Estou tentando escrever um método genérico para retornar o conteúdo de um Iterable em forma de matri

Aqui está o que eu tenho:

public class IterableHelp
{
    public <T> T[] toArray(Iterable<T> elements)
    {
        ArrayList<T> arrayElements = new ArrayList<T>();
        for(T element : elements)
        {
            arrayElements.add(element);
        }

        return (T[])arrayElements.toArray();
    }
}

Mas estou recebendo um aviso do compilador 'Observação: ... \ IterableHelp.java usa operações não verificadas ou inseguras.'

Quaisquer pensamentos sobre outra abordagem que evite esse avis

questionAnswers(3)

yourAnswerToTheQuestion