新人练习链表,提示红色代码错误 Error:(102, 33) java: 不兼容的类型: java.lang.Object无法转换为T
编译不过过去,求哥哥们指教!
import javax.swing.*;interface ILink<T> {
    public void add(T data);    public int size();    public boolean isEmpty();    public Object[] toArray();    public T get(int index);
}class LinkImpl<T> implements ILink<T> {
    private int count;
    private Node root;
    private int foot;
    private Object[] returnData;    private class Node<T> {
        private T data;
        private Node<T> next;        public Node(T data) {
            this.data = data;
        }        public void addNode(Node<T> newNode) {
            if (this.next == null) {
                this.next = newNode;
            } else {
                this.next.addNode(newNode);
            }
        }        public void toArrayNode() {
            LinkImpl.this.returnData[LinkImpl.this.foot] = this.data;
            foot++;
            if (this.next != null) {
                this.next.toArrayNode();
            }
        }        public T getNode(int index) {
            if (LinkImpl.this.foot ++== index) {
                return this.data;
            } else {
                if (this.next != null) {
                    return this.next.getNode(index);
                } else{
                    return null ;
                }
            }
        }
    }    @Override
    public void add(T data) {
        if (data == null) {
            return;
        }
        Node<T> newNode = new Node<T>(data);
        if (this.root == null) {            this.root = newNode;
        } else {
            this.root.addNode(newNode);
        }
        count++;
    }    @Override
    public int size() {
        return this.count;
    }    @Override
    public boolean isEmpty() {
        return this.size() == 0;
    }    @Override
    public Object[] toArray() {
        if (this.size() == 0) {
            return null;
        }
        this.foot = 0;
        this.returnData = new Object[this.size()];
        this.root.toArrayNode();
        return this.returnData;
    }    @Override
    public T get(int index) {
        if (index > this.size()) {
            return null;
        }
        this.foot = 0 ;
        return this.root.getNode(index) ;    }
}public class TestDemo {
    public static void main(String[] args) {
        ILink<String> link = new LinkImpl<String>();
        System.out.println(link.size());
        System.out.println(link.isEmpty());
        link.add("hello");
        link.add("www");
        link.add("nihao");
        System.out.println(link.size());
        System.out.println(link.isEmpty());
        Object[] obj = link.toArray();
        for (Object temp : obj) {
            System.out.print(temp + ",");
        }
        System.out.println(link.get(0));
        System.out.println(link.get(3));
    }
}