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]
还是以后呢?上述代码中,
之后ndef
的含义是什么?
同样,它还有另一个代码示例
techListsArray = new String[][] { new String[] { NfcF.class.getName() } };
techListsArray[][]
如何在此处初始化?我猜techListsArray[0][0]=NfcF.class.getName()
(应该是NfcF
不应该吗?)但其他元素呢?或者它只有一个元素?
答案 0 :(得分:5)
所以,
intentFiltersArray[0] = ndef
。那么intentFiltersArray[1]
及以后呢?
[1]
或“超出”没有元素。
您正在创建一个包含一个元素的数组。如果您尝试访问intentFiltersArray[1]
,则会收到未经检查的例外:ArrayIndexOutOfBoundsException
。
在上面的代码中,
ndef
后面有逗号是什么意思?
没有任何意义。 Java语言语法允许在数组初始化列表的末尾使用冗余逗号。 (表面上看,它是为了简化源代码生成......)
现在是你的第二个例子:
如何在这里初始化techListsArray [] []?
它被初始化为1x1字符串数组数组:
techListsArray[0]
是String[]
,只有一个元素。techListsArray[0][0]
是一个字符串... NfcF
类的完全限定名称;例如"some.pkg.NfcF"
。答案 1 :(得分:1)
intentFiltersArray = new IntentFilter[] {ndef, };
与
相同intentFiltersArray = new IntentFilter[] {ndef};
现在你的问题是如何初始化
IntentFilter[] intentFiltersArray = new IntentFilter[] {ndef };
这将在onw go中创建一个IntentFilter数组。它将在单行中定义和声明数组,数组大小为1,因为只有1个元素ndef
。