gpt4 book ai didi

java - 创建一个新对象,不能应用于类型(int)

转载 作者:行者123 更新时间:2023-11-30 06:49:35 27 4
gpt4 key购买 nike

我有一个 ProcessHeap 类,它有两个字段:

Heap:代表堆的 Process 类型的数组

大小:堆中元素的数量

我的构造函数和属性如下所示:

private Process[] heap;
private int size;
private static int counter = 0;

//Paramaterized construct
public ProcessHeap(Process[] heap, int size) {
this.heap = heap;
this.size = size;

问题是,我们得到了一个驱动程序,在驱动程序启动时我收到一个错误,特别是在 (HEAP_SIZE)

这是行:

final int HEAP_SIZE = 100;
ProcessHeap heap = new ProcessHeap(HEAP_SIZE); // gives this error:

鼠标悬停时的错误状态:

ProcessHeap (Process[], int) in ProcessHeap cannot be applied to (int)

最佳答案

正如其他人所说;您的直接问题是您只希望有一个构造函数接受两个参数,但随后您使用一个参数调用它。但除此之外,你把事情变得过于复杂了:

class ProcessHeap {
private final Process[] heap;

public ProcessHeap(int size) {
heap = new Process[size];
}

就是您需要应该使用的一切。在两个地方跟踪大小和数组是没有意义的。您始终可以执行 heap.length 来获取堆的大小。除此之外:您绝对不希望此类的用户必须为您的堆提供一个数组 - 因为他们稍后可以直接操作该数组。

你的类实现了那个堆;并且您使用数组来执行此操作是一个实现细节,您不应该根本与外界交流。

关于java - 创建一个新对象,不能应用于类型(int),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43085841/

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