有没有办法将未知类型的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);
答案 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,我不知道。也许提供一些关于你实际想要实现的目标的背景