gpt4 book ai didi

java - 未经检查地调用 push(E) 作为原始类型 Stack 的成员

转载 作者:行者123 更新时间:2023-12-01 14:08:30 35 4
gpt4 key购买 nike

首先,这段代码运行良好。但是,到目前为止,我已经看到了关于未经检查的 push(E) 调用的问题,因为原始类型在堆栈溢出时出现了很多次,而常见的解决方案是这样声明我的堆栈

    Stack<Integer> myStack = new Stack<Integer>();

但我这样做了,但仍然遇到同样的问题。这是一个小例子来显示正在发生的事情,但我似乎无法摆脱错误:

import java.util.*;

public class Main{

static void myPush (Stack myStack, int b){
myStack.push(new Integer(b));
System.out.println("inserted element is: " + b);
System.out.println("this is on the stack: " + myStack);
}
public static void main(String args[]) {

Stack<Integer> myStack = new Stack<Integer>();
myPush(myStack, 10);
myPush(myStack, 12);
myPush(myStack, 13);
}

}

我错过了什么?

最佳答案

您在方法声明中使用了原始类型。改变,

static void myPush (Stack myStack, int b)

static void myPush (Stack<Integer> myStack, int b)

或者, 使方法在 type 上通用 T喜欢

static <T> void myPush(Stack<T> myStack, T b) {
myStack.push(b);
System.out.println("inserted element is: " + b);
System.out.println("this is on the stack: " + myStack);
}

最后,Java 7 引入了 diamond operator <>你可以用它来改变

Stack<Integer> myStack = new Stack<Integer>();

Stack<Integer> myStack = new Stack<>();

关于java - 未经检查地调用 push(E) 作为原始类型 Stack 的成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37604338/

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