【问题标题】:Cannot invoke getRecords(int) on the array type无法在数组类型上调用 getRecords(int)
【发布时间】:2013-04-18 04:48:52
【问题描述】:

无论我尝试什么,我似乎都无法克服这个错误——我已经尝试删除 int 值(我似乎应该这样做),但这只会导致更多的编译器错误。

有什么建议吗?

 void processIntent(Intent intent) {
        Parcelable[] rawMsgs = intent.getParcelableArrayExtra(
                NfcAdapter.EXTRA_NDEF_MESSAGES);
    // only one message sent during the beam
    NdefMessage[] msg =  new NdefMessage[rawMsgs.length];
    for (int i = 0; i < msg.length; i++) {
        msg[i] = (NdefMessage) rawMsgs[i];
        // record 0 contains the MIME type, record 1 is the AAR, if present
        beamMsg.setText(new String(msg.getRecords(1).getPayload()));
        beamMsg2.setText(new String(msg.getRecords(1).getPayload()));
    }}

【问题讨论】:

  • 你能发布整个错误文本吗?更多上下文
  • 无法对数组类型 NdefMessage[] Connect.java 第 164 行调用 getRecords(int) Java 问题 无法对数组类型 NdefMessage[] Connect.java 第 163 行 Java 问题调用 getRecords(int)跨度>

标签: java android arrays int


【解决方案1】:

快速浏览位于here 的文档,您的语法似乎已关闭。

要引用特定的记录索引,代码应如下所示

msg.getRecords()[1].getPayload()

虽然也可能存在逻辑错误,您应该像这样调用msg[i]

msg[i].getRecords()[1].getPayload()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-26
    • 1970-01-01
    • 2013-11-11
    • 2018-11-03
    • 2012-04-15
    • 1970-01-01
    • 2014-05-19
    • 2023-03-17
    相关资源
    最近更新 更多