【问题标题】:Java : Array items null and int valuesJava:数组项 null 和 int 值
【发布时间】:2016-04-07 20:34:06
【问题描述】:

我有一个 Object 类型的数组。然后我将它的值分配给null。但后来我想在空单元格上分配 int 值。那可能吗? 在这些行中:

    Queue[y]=new Int;
    Queue[y]=num;

我正在尝试在空单元格中创建一个对象 Int 类型。但我得到这个错误:

error: '(' or '[' expected
            Queue[y]=new Int;

private Object Queue[];
public PriorityQueue(int capacity){
     this.capacity=capacity;
     Queue= new Object [capacity];
     for(int i=0;i<=Queue.length;i++) {
            Queue[i]=null;
     }
}

public boolean insert(int num){
     if (y<capacity){
            Queue[y]=new Int;
            Queue[y]=num;
            y++;
            return true;
     }
     else{
            y++;
            return false;
     }
}

【问题讨论】:

  • 调用构造函数时总是需要一个参数列表,即使它是空的:new Int()。或者,如果你的意思是创建一个数组,你需要指定元素的数量:new Int[10]
  • Integer,不是Int,它需要构造函数的值,所以new Integer(5)。但是您根本不需要该行,因为您将 num 分配给下一行数组中的那个位置。
  • @GriffeyDog 你怎么知道它不是一个名为Int 的自定义类?这是一个有效的类名。
  • @AndyTurner 假设...
  • “我想在空单元格上分配 int 值。这可能吗?”不可以。您可以分配 Integer 值,但不能分配 int 值。

标签: java arrays oop null int


【解决方案1】:

(我不知道您所说的 Int 是什么类 - 也许您的意思是 java.lang.Integer,但也许您的意思是一些自定义类。但这与答案并不完全相关)

调用构造函数时总是需要一个参数列表,即使它是空的:

new Int()

或者,如果你的意思是创建一个数组,你需要指定元素的数量:

new Int[10]

但是,您不需要第一次分配:

Queue[y]=new Int();
Queue[y]=num;

第二行覆盖了第一行的值,所以它实际上只是创建一个对象,然后立即丢弃它。

你可以简单地写:

Queue[y]=num;

请注意,这实际上并不是将int 分配给Object 数组元素:由于自动装箱,编译器会自动将其转换为:

Queue[y]=Integer.valueOf(num);

所以Integer 的实例被添加到数组中。但是,这种转换不是您需要自己做的事情。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-03
    • 2011-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多