java中不必要的拆箱 - 如何重构代码?

时间:2017-02-21 08:09:59

标签: java intellij-idea boxing

我有以下Java 8代码(为演示而简化):

public Double fooBar(int a) {
    return Double.valueOf(a);
}

现在IntelliJ IDEA告诉我,我在return语句中有不必要的装箱。如果adouble类型,我会理解这个问题,但对于int,我觉得我需要装箱才能转换为double

有没有一种很好的方法来重构我目前看不到的代码,或者此时IntelliJ IDEA的错误消息根本不是最佳的?

感谢您的帮助

3 个答案:

答案 0 :(得分:9)

如果您使用alt-enter来使用建议的分辨率"删除拳击",结果如下:

public Double fooBar(int a) {
    return (double) a;
}

在这种情况下,从intdouble的转换非常明确,同时避免了手动装箱。

答案 1 :(得分:6)

如何在整个过程中保持原始境界?

public double fooBar(int a) {
    return a;
}

答案 2 :(得分:0)

我的答案是不重构代码。
原始代码完美无缺,无需任何操作。
自动装箱是不必要的恕我直言。