【问题标题】:How to convert double to object?如何将双精度转换为对象?
【发布时间】:2015-11-24 05:18:01
【问题描述】:

我正在编写程序的一部分,它从 txt 文件中读取数据。

当我想通过 setValue(object) 设置 JSpinner 的值时遇到问题。

我的数据是双倍的,所以我需要将其转换为对象,但是如何?

LoadData open = new LoadData();
data.setFz(open.giveAwayData());
spinner_1.setValue(data.getFz()); // Fz is double

【问题讨论】:

  • 我刚刚尝试过,我可以使用 double 作为参数,没有强制转换也没有转换 ;)
  • 我重新盯着 eclips,现在一切正常。奇怪的错误。
  • 不幸的是,它并不像您想象的那么奇怪。 Eclipse 有时会失去理智,您必须重新启动。它发生得太频繁了。你只需要习惯它(就像我一样),或者切换到 IntelliJ(我听说它更稳定一点,但我不确定)。

标签: java file type-conversion jspinner


【解决方案1】:

使用Double.valueOf(data.getFz())。关于原语和盒装原语的区别的解释可以找到here;基本上,原语具有更好的性能,但是当您需要Object 时,盒装类就在那里。一个常见的例子是generics,它不能是原语。

然而double 可以传递给需要Double 或其超类之一的东西。这是因为autoboxing。是的,我非常喜欢链接。

【讨论】:

  • 它不起作用...我需要对象,而不是双重。它是 setValue(object)
  • 就像我说的,自动装箱应该可以为您解决这个问题。此外,DoubleObject 的子类。但是您始终可以使用Object obj = data.getFz();(自动装箱可以做到这一点)。
  • 永远不要使用new Double。始终使用Double.valueOf
  • @VGR,是的,忘了Double 也有。
【解决方案2】:

尝试将其转换为 Double(大写):

spinner_1.setValue((Double) data.getFz());

【讨论】:

  • 如果这是一个答案,它不应该以问号结尾。 :) 此外,显示代码将非常有帮助。我认为这是正确的答案,但你只需要多做一点就可以使它成为一个好的答案。
  • 理想情况下这将是一个评论,但我还不能评论所以处理它。但我会根据您的建议对其进行编辑。
  • 我不明白资本是什么意思。请给一些代码。
  • @Xalion "capital" 表示大写。 Java 区分doubleDoubledouble 是基本类型而不是对象,Double 是对象。 Double 以大写(大写)D 开头。Java 通常会自动在两者之间进行转换(装箱和拆箱)。
  • spinner_1.setValue((Object) data.getFz());它应该看起来像那样,但它不起作用。
【解决方案3】:

例如,您可以使用Double 构造函数将double 原始类型转换为Double object

Double dObj = new Double(d);

或者您可以像这样将其转换为 Double:

spinner_1.setValue((Double)data.getFz());

【讨论】:

  • 为什么需要演员表?还是显式的 Double 创建?自动装箱应该妥善处理...
  • @Codebender:- 确实! new Double(data.getFz()) 很好。
  • 它是 setValue(object)。我需要里面的对象...如何设置数字...应该很容易。
  • @Xalion:- 你可以试试:setValue(((Number)object).doubleValue())
猜你喜欢
  • 2015-06-12
  • 2015-02-12
  • 2011-03-11
  • 2011-11-20
  • 1970-01-01
  • 1970-01-01
  • 2015-09-13
  • 2010-10-16
  • 2012-09-23
相关资源
最近更新 更多