Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java泛型类没有';t显示我传入的对象_Java_Generics - Fatal编程技术网

Java泛型类没有';t显示我传入的对象

Java泛型类没有';t显示我传入的对象,java,generics,Java,Generics,我正在尝试构建一个简单的泛型类,它使用java中的泛型对象。一切都可以编译,但是当我运行代码时,它不会显示我传递给它的对象 这是我的密码: public class ListDriver { public static void main(String[] args) { List<String> glist = new List<String>(10); glist.add("milk"); glist.a

我正在尝试构建一个简单的泛型类,它使用java中的泛型对象。一切都可以编译,但是当我运行代码时,它不会显示我传递给它的对象

这是我的密码:

public class ListDriver {


    public static void main(String[] args) {

        List<String> glist = new List<String>(10);

        glist.add("milk");
        glist.add("eggs");
        System.out.println("Grocery List" + glist.toString());

    }


    public class List<T> {
        private T[] datastore;
        private int size;
        private int pos;


        public List(int numElements) {
            size = numElements;
            pos = 0;
            datastore = (T[]) new Object[size];
        }

        public void add(T element) {
            datastore[pos] = element;

        }

        public String toString() {
            String elements = "";
            for (int i = 0; i < pos; ++i) {
                elements += datastore[i] + "";
            }
            return elements;
        }

    }
}
公共类ListDriver{
公共静态void main(字符串[]args){
列表glist=新列表(10);
加牛奶;
加入鸡蛋;
System.out.println(“杂货清单”+glist.toString());
}
公共班级名单{
私有T[]数据存储;
私有整数大小;
私人国际邮政局;
公共列表(整数){
大小=整数;
pos=0;
数据存储=(T[])新对象[大小];
}
公共无效添加(T元素){
数据存储[pos]=元素;
}
公共字符串toString(){
字符串元素=”;
对于(int i=0;i
添加方法始终替换位置0(零)中的元素。您忘记了递增pos(
pos++;

您没有递增
pos
变量,因此您总是在同一位置进行添加。试一试

public void add(T element) {
        datastore[pos++] = element;

    }

格式化你的代码。很难看,你得到了什么结果?你试过调试吗?此外,在构造函数中初始化后,pos的值不会更改。
datastore[pos]=element==>
数据存储[pos++]=元素。此外,您还应将
pos
size
进行比较,并根据需要增加
datastore
。非常感谢大家的帮助。成功了。我忘了增加[pos++],然后选择一个答案,将问题标记为已回答,或者删除它(根据您的喜好)。我也会选择您的答案,因为您添加了已更正的方法;)