java中从对象到字符的转换

java中从对象到字符的转换,java,stack,Java,Stack,在我的一个问题中,我遇到RuntimeException,因为有必要将对象转换为char。我尝试使用charValueOf()方法来获取对象的原语值,但无法实现。这是我的代码 while ((stack.size() > 0) && (stack.peek() != '(')) { if (ComparePrecedence(stack.peek(), infix[i])) { } } boolean ComparePrecedence(char t

在我的一个问题中,我遇到RuntimeException,因为有必要将对象转换为char。我尝试使用charValueOf()方法来获取对象的原语值,但无法实现。这是我的代码

while ((stack.size() > 0) && (stack.peek() != '('))
{
    if (ComparePrecedence(stack.peek(), infix[i]))
    {
    }
}
boolean ComparePrecedence(char top, char p_2)
{
}

我怎样才能解决这个问题?谢谢..

尝试将通用对象转换为字符通常不是一个好主意,因为它没有任何意义。如果对象是字符,则可以使用以下命令

char ch = o.toString().charAt(0)

我认为您得到了一个异常,因为您没有使用字符包装类的实例。如果使用字符包装类的实例,则可以调用/使用charValue方法。

所遇到的问题是由所使用的堆栈引起的。堆栈是基于对象的,因此它允许您推送字符类型,但当您弹出或查看它们时,它们将显示为对象类型。如果总是要推送字符类型值,则可以更改堆栈代码以接受泛型类型,如

另一个选项是通过执行以下操作,在偷看或弹出时将对象投射回
(字符)

while ((stack.size() > 0) && ((Character) stack.peek() != '('))
{
    if (ComparePrecedence((Character) stack.peek(), infix[i]))
    {
    }
}

堆栈和中缀是什么?您会得到什么异常?需要更多信息才能充分回答此问题。如果对象是
字符
,则可以强制转换该对象,然后调用以获取原语。我怀疑OP不知道它是
字符
,还是包含一个字符的字符串或其他完全相同的内容。;)理解,但如果OP不知道他的代码正在处理的对象的类型,那就太可惜了!:)“这正是我想要的。”彼得说Lawrey@mre,这种事情一直在发生,所以|