O ArrayList é uma classe, não um array primitivo.
Você não pode usar o operador[]. A declaração de seu generic também está fora das convenções de nomes, conforme explicado no The Generics Tutorial da Sun:
"A note on naming conventions. We recommend that you use pithy (single character if possible) yet evocative names for formal type parameters. It?s best to avoid lower case characters in those names, making it easy to distinguish formal type parameters from ordinary classes and interfaces."
Seu código deveria se algo como:
import java.util.List;
import java.util.ArrayList;
public class ArrayFlex <T> {
private List <T> aArray;
private int aLS;
private int aLI;
public ArrayFlex (int limiteSuperior, int limiteInferior) {
aLS = limiteSuperior;
aLI = limiteInferior;
aArray = new ArrayList<T> (aLS - aLI + 1);
}
public void setElemento (int pPosicao, T pValor) {
aArray.set((pPosicao + aLI) - 1, pValor);
}
public T getElemento (int pPosicao) {
return aArray.get((pPosicao + aLI) - 1);
}
}
Outras dicas: Seu ArrayList não precisa ser pré-inicializado com um tamanho específico. Todo ArrayList cresce a medida que for necessário.
Sempre use listas através da interface List, como feito na declaração. Assim fica bem fácil trocar o seu código para um outro tipo de lista no futuro, se isso for necessário.