这里进行了什么样的数组初始化(Basic Java)?

use*_*267 2 java android

这是来自Android Developer的网站

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, };  
Run Code Online (Sandbox Code Playgroud)

所以在这里intentFiltersArray[0] = ndef.怎么样intentFiltersArray[1]?在上面的代码中有什么,后面的ndef意思?

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

techListsArray = new String[][] { new String[] { NfcF.class.getName() } };  
Run Code Online (Sandbox Code Playgroud)

怎么techListsArray[][]在这里初始化?我猜techListsArray[0][0]=NfcF.class.getName()(应该不NfcF应该这样?)但其他元素呢?或者它只有一个元素?

Ste*_*n C 5

所以在这里intentFiltersArray[0] = ndef.怎么样intentFiltersArray[1]

没有元素[1]或"超出".

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

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

这不代表任何意思.Java语言语法允许在数组初始化列表的末尾使用冗余逗号.(表面上看,它是为了简化源代码生成......)


现在你的第二个例子:

techListsArray [] []如何在这里初始化?

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

  • techListsArray[0]是一个String[]有一个元素.
  • techListsArray[0][0]是一个String ...类的完全限定名称NfcF; 例如"some.pkg.NfcF".