无法在基本类型double上调用set Double(Double)

时间:2013-03-28 17:12:10

标签: java arrays double jlist

好吧,我在java上非常糟糕(说实话,我讨厌编程,我更喜欢网络)。无论如何,因为这是针对大学的我实际上无法分享大部分代码而不用于学术不端行为,尽管我可以自由地寻求帮助。

我有一个带有一堆名字的JList,以及一个名为

的值的数组
final Double[] filmcost = { 5.00, 5.50, 7.00, 6.00, 5.00 };

我想要做的是当某人从列表中选择某些内容时,它会将值分配给变量(它还将文本框设置为来自另一个数组的字符串,但这样可以正常工作)。

所以我得到了我的变量

protected double filmCost;

这里是ListSelectionListener

filmList.addListSelectionListener(new ListSelectionListener() {
            public void valueChanged(ListSelectionEvent evt) {
                                                    filmCost.setDouble(filmcost[filmList.getSelectedIndex()]);
            }
        });

然而,它抱怨它“无法在原始类型double上调用set Double(Double)”。我觉得解决方案非常简单,但我现在已经坚持了一个多小时。

2 个答案:

答案 0 :(得分:5)

double只是一个没有方法的原始值,只需分配它。

filmCost = filmcost[filmList.getSelectedIndex()];

答案 1 :(得分:2)

你需要的是这样写:

filmList.addListSelectionListener(new ListSelectionListener() {
       public void valueChanged(ListSelectionEvent evt) {
             filmCost = filmcost[filmList.getSelectedIndex()];
       }
 });

因为filmCost是双基元,并且您不能在基元上调用任何方法(它们不是您调用setget或任何方法的对象。因此,只需使用=分配值。

同样是一个建议,更改变量名称filmCostfilmcost,因为它们非常令人困惑(它们看起来完全相同,至少我在第一次看时感到困惑)。

相关问题