【问题标题】:JOptionPane getValue method [closed]JOptionPane getValue 方法
【发布时间】:2013-04-05 13:47:16
【问题描述】:

我最近开始在大学学习 Java。在我允许搜索的在线测试中,我对 JOptionPane 类中可用的方法 getValue 有疑问。这个方法返回一个String类的对象是真的吗?如果不是,为什么?这个方法返回什么样的对象?请回答我。谢谢。

【问题讨论】:

标签: java string swing joptionpane


【解决方案1】:

这取决于 JOptionPane 和放置在那里的值以供选择。如果程序让用户在多个Strings 之间进行选择(选择:“狗”、“猫”...),那么在调用getValue() 方法时,您可以期待String

但是要小心,实际上getValue() 只从class Object 返回一个对象,而不是 StringObject所有类之母JOptionPane 可以保存任何你想要的东西(字符串、整数、图像其他 JOptionPanes...),所以方法 getValue() 不可能真的是确定它会返回什么样的类。这就是为什么它返回 class Object 的对象。

如果您确定 JOptionPane 包含 String,那么您可以像这样使用它:

   String myString = (String) myJOptionPane.getValue();

如果您不能 100% 确定,请先测试结果:

   if( myJOptionPane.getValue() instanceOf String){
       String myString = (String) myJOptionPane.getValue();
   }

现在,如果您想知道为什么您的问题被否决:您可能想先用谷歌搜索这些问题。第一种查看方式是在这个Java Docs。例如这里是JOptionPane.getValue() 的描述。不要对看起来很复杂的文档感到困惑。他们将为您提供有关方法和类如何工作的所有信息的正确答案。

【讨论】:

  • 感谢GameDroids的回复。问题是老师没有在测试中提供程序。他只问:JOptionPane类中可用的getValue方法返回String类的对象是真是假?
  • 那么很清楚(如 Java 文档所述):getValue() 方法返回类 ObjectnotString 的对象
  • (String)myJOptionPane.getValue( ) 永远不会有意义。如果 getValue() 是 String,myJOptionPane.getValue().toString() 将返回相同的 String——参见 String.toString() 的 javadoc——如果不是,则不会抛出 ClassCast 异常。
  • @gerardw true,something.toString 不会抛出异常,但它可能会返回像 java.lang.Object@702d2da4 这样无用的东西。在使用结果之前仍应进行测试。所以我想这是一个品味问题,要么测试instanceOf 并使用.toString(),要么将对象转换为字符串并捕获预期的ClassCastException。无论如何,很高兴看到有人仍在为旧帖子做出贡献:)
猜你喜欢
  • 1970-01-01
  • 2018-07-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-08
  • 2018-07-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多