加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

在Scala中将java对象转换为Object []

发布时间:2020-12-16 09:00:31 所属栏目:安全 来源:网络整理
导读:嗨,在 scala上工作的 Android短信应用程序很好,我希望我找不到在scala中编写以下java代码的方法.任何帮助赞赏 //---retrieve the SMS message received--- Object[] pdus = (Object[]) bundle.get("pdus"); msgs = new SmsMessage[pdus.length]; for (int i=
嗨,在 scala上工作的 Android短信应用程序很好,我希望我找不到在scala中编写以下java代码的方法.任何帮助赞赏

//---retrieve the SMS message received---
    Object[] pdus = (Object[]) bundle.get("pdus");  
    msgs = new SmsMessage[pdus.length];             
        for (int i=0; i<msgs.length; i++){  
            msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);

我必须承认我不知道如何在scala中编写Object []而不是java.util.ArrayList [java.lang.Object]
我已经尝试使用Bundle.getStringArrayList获取List [String]并对字符串执行getBytes但不起作用…
我的最后一次尝试是:

//I know I should be using an Option ...  
def getSmsListFromIntent(intent:Intent):List[SmsMessage]= {  
    val bundle = intent.getExtras()  
    var ret:List[SmsMessage]= null  
    if (bundle != null)   
        ret= for { pdu <- bundle.getStringArrayList("pdus").toList } yield  
SmsMessage.createFromPdu( pdu.getBytes())
    else ret= List()  
    ret

java代码来自:http://mobiforge.com/developing/story/sms-messaging-android
谢谢你的帮助

解决方法

以下是标题中的问题,可能不是解决问题的最佳方法.把它拿走它的价值.

Scala中的强制转换的字面翻译为asInstanceOf:

var x: Object = Array("foo","bar");
var y = x.asInstanceOf[Array[Object]];    
>> x: java.lang.Object = Array(foo,bar)
>> y: Array[java.lang.Object] = Array(foo,bar)

但是,作为一个有趣的练习,为什么会导致ClassCastException?

var x: Object = Array(1,2);
var y = x.asInstanceOf[Array[Object]];

快乐的编码

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读