"Can only iterate over an array or an instance of java.lang.Iterable"
What... a ok... and then what? You could just fix your logic in order or just google for "java iterator to iterable". But could you just make the iterator also an iterable somehow.
Step one, obviously, add the Iterable interface to your iterator:
public class SuperIterator<T> implements Iterator<T>, Iterable<T> {
Step two, add the missing method by return itself as its iterator:
@Override public Iterator<Character> iterator() { return this; }
done_