Java泛型类不显示我传递给它的对象

标签 java generics

我正在尝试构建一个简单的泛型类,它使用 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;
        }

    }
}

最佳答案

您不会增加 pos 变量,因此您总是在同一位置添加。尝试一下

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

    }

关于Java泛型类不显示我传递给它的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23632351/

相关文章:

c# - 在 C# 中实现通用非托管数组

java - 如何在客户端散列 JAAS j_password?

java - Eclipse 无法识别我的 "Main"方法

java - neo4j 中的数据模型

java - 更新 JTable 数据——使用 AbstractTableModel

c# - 通过 List<T> 删除不需要的对象的最简单方法是什么?

java - 定期调用Web服务

java - 为什么 Java(但不是 .NET)无法在不需要原始类型/类型删除的情况下适应泛型?

swift - 如何将通用数字类型 'T' 转换为 CGFloat

c# - 创建一个具有通用列表对象的接口(interface)