有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何创建包含不同数据类型的二维数组

我的目标是有这样一个数组:{{Object,int},{Object,int},其中整数表示前面指示的对象有多少个的计数。 我已经研究了java泛型,但我似乎无法正确理解它。 到目前为止,我所拥有的:

class AmmoRack < E extends Bullet, N > {

  AmmoRack<Bullet, Integer>[][] ammo;

  public AmmoRack() {
    this( {new Bullet(Bullet.AP), 50});// Bullet.AP is an int, public Bullet(int type){...}
  }
  public AmmoRack(AmmoRack<Bullet, Integer>[][] ammo) {
    this.ammo = ammo;
  }
}

我已经研究了其他问题,但它们似乎对我的案例没有特别的帮助


共 (1) 个答案

  1. # 1 楼答案

    不能用两种不同的类型定义数组。bullet对象是bullet类型,50是整数类型。但是,所有类都扩展了对象类

    如果您这样编写代码:

    public class AmmoRack extends Bullet {
    
    Bullet[][] ammo;
    
    public AmmoRack(Integer anIntegerType, int n) {
        super(n);
        this.ammo = new Bullet[new Bullet(n)][anIntegerType];
    }}
    

    发生编译时错误,编译器说新的Bullet(n)应该是int类型。因为你定义了一个数组! 还有物体[]弹药;这是错误的。同样的错误也会发生。除非你认为一个项目符号是一个数字,并在你的项目符号类中定义它,这是不合逻辑的