2

这是来自Android 开发者的网站

IntentFilter ndef = new IntentFilter(NfcAdapter.ACTION_NDEF_DISCOVERED);
try {
    ndef.addDataType("*/*");    /* Handles all MIME based dispatches.
                                   You should specify only the ones that you need. */
}
catch (MalformedMimeTypeException e) {
    throw new RuntimeException("fail", e);
}
intentFiltersArray = new IntentFilter[] {ndef, };  

所以在这里,intentFiltersArray[0] = ndef。关于intentFiltersArray[1]和超越?上面代码 中的,after是什么意思?ndef

同样,它还有另一个代码示例

techListsArray = new String[][] { new String[] { NfcF.class.getName() } };  

这里是如何techListsArray[][]初始化的?我猜techListsArray[0][0]=NfcF.class.getName()NfcF应该不应该?)但是其他元素呢?还是它只有一个元素?

4

2 回答 2

5

所以在这里,intentFiltersArray[0] = ndef。关于intentFiltersArray[1]和超越?

[1]在或“超越” 没有元素。

您正在创建一个包含一个元素的数组。如果您尝试访问intentFiltersArray[1],您将得到一个未经检查的异常:ArrayIndexOutOfBoundsException.

ndef在上面的代码中,逗号后面是什么意思?

这不代表任何意思。Java 语言语法允许在数组初始值设定项列表的末尾使用多余的逗号。(表面上是为了让源代码生成更容易……)


现在你的第二个例子:

techListsArray[][] 这里是如何初始化的?

它被初始化为一个 1x1 的字符串数组:

  • techListsArray[0]String[]一个元素。
  • techListsArray[0][0]是一个字符串...类的完全限定NfcF;例如"some.pkg.NfcF"
于 2013-08-05T05:47:11.833 回答
1
intentFiltersArray = new IntentFilter[] {ndef, };

intentFiltersArray = new IntentFilter[] {ndef};

现在你的问题是如何初始化

   IntentFilter[] intentFiltersArray = new IntentFilter[] {ndef };  

这将在 onw go 中创建一个 IntentFilter 数组。它将在单行中定义和声明数组,数组大小为 1,因为只有 1 个元素ndef

于 2013-08-05T05:46:50.380 回答