O Java Docs para o método
String[] java.io.File.list(FilenameFilter filter)
inclui isso na descrição de retornos:
A matriz estará vazia se o diretório estiver vazio ou se nenhum nome foi aceito pelo filtro.
Como faço uma coisa semelhante e inicializo uma matriz String (ou qualquer outra matriz) para ter um comprimento 0?
java
arrays
initialization
Ron Tuffin
fonte
fonte
null
nesse caso especial.Respostas:
Como outros já disseram,
de fato criará uma matriz vazia. No entanto, há uma coisa boa sobre matrizes - o tamanho delas não pode mudar, então você sempre pode usar a mesma referência de matriz vazia. Portanto, no seu código, você pode usar:
e depois retorne
EMPTY_ARRAY
sempre que precisar - não há necessidade de criar um novo objeto a cada vez.fonte
private static final String[] EMPTY_ARRAY = {};
EMPTY_ARRAY[0]
- que está tentando acesso ao elemento 0, que não existe ...String[] str = new String[0];
?fonte
Mas
não funcionará porque as informações de tipo estão ausentes.
fonte
return new String[] { };
ereturn new String[0];
ambos funcionariam.Ok, na verdade encontrei a resposta, mas pensei em 'importar' a pergunta para o SO de qualquer maneira
String[] files = new String[0];
ou
int[] files = new int[0];
fonte
Você pode usar ArrayUtils.EMPTY_STRING_ARRAY em org.apache.commons.lang3
fonte
Crie uma função que não retorne nulo; em vez disso, retorne uma matriz vazia que você pode percorrer abaixo do código para entender.
fonte