gpt4 book ai didi

java - 如何编写公共(public)类 MyList

转载 作者:行者123 更新时间:2023-12-01 13:10:53 25 4
gpt4 key购买 nike

所以假设我想写一些像 ArrayList 这样的东西只是不是一个列表,而是一个 ArrayGrid(二维版本)

我已经发现 ArrayList 使用 Object[]存储数据。

所以我做了一个

private Object[][] grid;

但是我的 getData 方法抛出了 ClassCastException:

public E[][] getData(){
return (E[][]) grid;
}

上面的方法和这个:

public E get(int x, int y){
return (E) grid[x][y];
}

两者都给我一个警告:“类型安全:从对象到 E 的未经检查的转换”

我可以想象为什么,但我找不到解决方案。那么 ArrayList 是如何做到这一点的呢?

最佳答案

Here ArrayList.java 文件(如果有帮助)。

编辑:这是您要查找的部分:

        @SuppressWarnings("unchecked")
E elementData(int index) {
return (E) elementData[index];
}


/**
* Returns the element at the specified position in this list.
*
* @param index index of the element to return
* @return the element at the specified position in this list
* @throws IndexOutOfBoundsException {@inheritDoc}
*/
public E get(int index) {
rangeCheck(index);


return elementData(index);
}

编辑:修正但是如果您使用泛型类型,您可以这样做而不是使用对象:

    private E[][] grid; //seems to be impossible

关于java - 如何编写公共(public)类 MyList<E>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22882338/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com