gpt4 book ai didi

java - 原始类型,泛型,应该被参数化

转载 作者:行者123 更新时间:2023-11-30 11:07:41 25 4
gpt4 key购买 nike

所以我是堆栈的新手,我必须编写一个解决后缀表达式的程序。我觉得我的物流有些正确,但我收到一条警告,说我有一个原始类型,我的引用应该被参数化。我不知道这意味着什么,也不知道如何解决。有任何想法吗?

    import java.util.Stack;

public class Expression<T> {

int result, num1, num2;
Stack stack;
char c;


public <T> int evaluate(String expression)
{
stack = new Stack();

for (int i = 0; i < expression.length(); ++i)
c = expression.charAt(i);

if (c > '0' && c < '9')
stack.push(c);
else
num1 = Integer.parseInt("" + stack.pop());
num2 = Integer.parseInt("" + stack.pop());

switch (c)
{
case '+':
stack.push(num1 + num2);
break;
case '-':
stack.push(num1 - num2);
break;
case '*':
stack.push(num1 * num2);
break;
case '/':
stack.push(num1 / num2);
break;
}

result = Integer.parseInt("" + stack.pop());

return result;
}

最佳答案

原始类型意味着堆栈(在本例中)将保存的数据类型是未指定的。

Java 被认为是类型安全的,因此其功能之一是确保接受和存储正确的类型。如果不指定类型,程序更容易出现运行时错误。

要删除警告,只需使用 Stack<Character> stack = new Stack<Character>(); 创建堆栈即可

(请注意,使用了包装类 Character,而不是基本类型 char。原因是通用数据结构只能保存对象,而基本类型则不能。)

关于java - 原始类型,泛型,应该被参数化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28822286/

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