如何安全地将int转换为short?

时间:2020-03-10 16:47:28

标签: java types casting

我有以下Java代码:

shortVar = (short) intVar;

但是有时候它给我的价值不同于我的期望。 在无法正确强制转换并引发错误消息的情况下,保护代码免受侵害的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

首先,我建议您不要使用short类型:常见的Java编程规则不建议使用此类型(由于空间性能低,因为short占用16位,而现代体系结构可处理64位数据。

但是,只有当您必须绝对使用short变量时,确保您不会超出正确范围的正确方法是:

    if (intVar <= Short.MAX_VALUE && intVar >= Short.MIN_VALUE)
    {
        short shortVar=(short)intVar;
        ...
    }
    else
    {
        // The cast shall not be safely done.
        ...
    }