gpt4 book ai didi

Java:根据我的类(class)校正器的说法,为什么这是错误的?

转载 作者:行者123 更新时间:2023-12-01 18:34:31 24 4
gpt4 key购买 nike

我因以下决定而损失了 10%(将我的 que 实例化为对象而不是整数类型),我不确定为什么?也许有人能明白为什么?

这里我将“myQueue2”实例化为对象类型。

Queue<Object> myQueue2 = new LinkedQueue<Object>(); 

接下来我将一些整数入队和出队

try {
myQueue2.enqueue(10);
System.out.println(myQueue2);
myQueue2.enqueue(5);
System.out.println(myQueue2);
myQueue2.dequeue();
int total = 0;
while (!myQueue2.isEmpty()) {
total += (int)myQueue2.dequeue();
}
System.out.println("The Queue's remain elements added to: " + total);
} catch (QueueEmptyException ex) {
System.out.println("Stack Empty Error");
}

根据我的评分者的说法,问题是我应该将队列实例化为整数类型。起初他们认为它无法编译,因为他们没有使用 Java 7,并且这一行在 Java 7 之前是非法的:

total +=  (int)myQueue2.dequeue();

在我解释之后,他们仍然说我应该将队列实例化为整数类型。

但是,我的逻辑是我可以将字符串排入队列。字符和整数通过将其实例化为对象,然后将其转换为这一行中的 (int) :(当我尝试时它才起作用) 总计 += (int)myQueue2.dequeue();

我认为我的方法更灵活,不是吗?对于我选择在这里使用 Object 的优点和缺点,我没有完全理解吗?

最佳答案

使用“盲目转换”或instanceof通常是非常糟糕的方法。使用正确的类型可以让编译器在运行程序之前就发现错误。

此外,它还可以帮助您轻松找到实例的用途(想象一下,您在一两年后看到代码,并且看到 Queue<Object> myQueue2 = new LinkedQueue<Object>(); ,您应该如何知道它用于整数?

关于Java:根据我的类(class)校正器的说法,为什么这是错误的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22647249/

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