引用Java基本类型进行转换

我想根据用户的偏好将数组中的一系列对象转换为不同的类型.

 

是否可以从数组引用原始类型进行转换?

 

public void MakeByteBuffer(float x, float y, float z) {
    xyz[0] = x;
    xyz[1] = y;
    xyz[2] = z;
    byteBufferSend.rewind();
    for (int i = 0; i < whatToSendVarArray.length; i++) {
        switch (whatToSendTypeArray[whatToSendVarArray[i]]) {
        case 0:// byte
            byteBufferSend.put((byte) xyz[whatToSendVarArray[i]]);
            break;
        case 1:// short
            byteBufferSend
                    .putShort((short) xyz[whatToSendVarArray[i]]);
            break;
        case 2:// int
            byteBufferSend
                    .putInt((int) xyz[whatToSendVarArray[i]]);
            break;
        // Plus more types...
        }
        byteArrayDataToSend = byteBufferSend.array();
    }
}

理想情况下,我想要:

 

typeArray={byte,short,int,long,float,double};
byteBufferSend.put???((typeArray[i]) xyz[whatToSendVarArray[i]]);

最佳做法是什么?

最佳答案

Is it possible to reference primitive-types from an array for casting?

没有.

在Java中,您不能将一个原始类型的数组当作另一种原始类型的数组来对待.因此,无论xyz数组的基本类型是什么,这都是查看元素的唯一方法.

最好的办法是提取一个元素,然后显式转换它.

(我认为反射对您无济于事,因为反射API不会进行基本类型的转换.)

 

What is the best practice?

最好避免这种低级别的东西.但是,如果必须这样做,请接受这样的事实,即代码不可避免地会有些笨拙.

因此,最佳实践是将笨拙的行为隐藏在方法内部,这样您就不必在整个代码中都做这种事情.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值