【问题标题】:Convert null to int将 null 转换为 int
【发布时间】:2016-10-30 10:37:21
【问题描述】:

在 pop() 或 dequeue() 操作中使用堆栈/队列时,我有一些代码如下:

myarray[t--]=null;

实现是一个整数数组的形式。 我收到类似“无法转换为 int”的错误。现在我意识到这种重新分配给 null 对于这个实现来说并不是明确必要的,因为我正在跟踪堆栈的顶部。 但无论如何,我该如何克服这个错误?

【问题讨论】:

  • 使用包装类型数组Integer
  • 传统方式是不对“剩余”ints 做任何事情。正如你所说,无论如何你都在跟踪顶部。
  • 亲爱的投票者:请在投票的同时留下批评。我搜索了一个重复的问题,因此我可以关闭此问题,但没有找到。

标签: java arrays null int stack


【解决方案1】:

Primitivesint 不能为空。改用一个对象,在这种情况下是 Integer 类。更多讨论请参见this Question

请如下声明您的数组myarray

int size =10; // size of array
Integer[] myarray=new Integer[size];

现在,您可以指定为:

myarray[t--]=null;

【讨论】:

  • 所以我认为使用 Integer 是此类分配的先决条件?谢谢。
  • 是的@Neodymia,您不能将null 分配给诸如int 之类的基元数组。对于这种情况,您需要使用包装类Integer
  • @Neodymia 赋值时不需要 Integer 对象,例如myArray[t] = 7 ;。 Java 将方便地从您的 int 原始值创建一个 Integer 对象。请参阅Tutorial on autoboxing
猜你喜欢
  • 1970-01-01
  • 2019-06-18
  • 1970-01-01
  • 1970-01-01
  • 2020-07-03
  • 2012-01-07
  • 1970-01-01
  • 2018-04-28
  • 2011-05-13
相关资源
最近更新 更多