Java:检测返回的Object类型

时间:2014-10-31 03:28:10

标签: java swing exception casting classcastexception

有没有办法将未知类型的Object转换为整数? 好吧,我目前的代码是:

ImageIcon question = new ImageIcon("D:\\Project Pics\\orange QMark 1 (small).jpeg");
String[] options = { "Numbers", "Alphabets", "Both" };

    JOptionPane.showInputDialog(null,"What type of array are you sorting?", "Array Type",JOptionPane.INFORMATION_MESSAGE, question, options, null);

我如何知道或检测它返回的对象类型?我执行此操作时收到ClassCastException:

int code = (int) JOptionPane.showInputDialog(null,"What type of array are you sorting?", "Array Type",JOptionPane.INFORMATION_MESSAGE, question, options, null);

1 个答案:

答案 0 :(得分:2)

您正在使用的重载showInputDialog方法需要Object[]作为arguemnt(它用于组合框),为此它将返回Object。该对象是您提供的数组中选定的值之一。

在您当前的情况下,它是一个String数组,因此所有值都是String。唯一可能的返回值是数组中的值。例如,如果您有类似

的内容
Object[] options = { "1", 2, true };

然后你必须先检查instanceof以查看类型是什么,然后再进行投射。例如

Object returnValue = JOptionPane.showInputDialog(...);
if (returnValue instanceof Integer) {
    Integer intValue = (Integer)returnValue;
}

至于你当前如何尝试将int转换为返回值,我不明白。唯一可能的返回值是{ "Numbers", "Alphabets", "Both" }。为什么你试图将其中一个值转换为int,我不知道。也许提供一些关于你实际想要实现的目标的背景