Corrija o erro: filtrando arrays vazios

Estou tentando remover os arrays vazios de um array. Em outras palavras, quero transformar algo como new Object[]{"a", "b", new Object[0], new Object[0], new Object[]{1, 2, 3}} em new Object[]{"a", "b", new Object[]{1, 2, 3}}. Meu código é este:

public static Object[] removeEmptyArrays(Object[] items) {
    return java.util.Arrays.stream(items).filter(item -> item != new Object[0]).toArray();
}

No entanto, por algum motivo, os arrays vazios continuam lá. Corrija o código para removê-los.

Exemplos

// O que quero obter:
Program.removeEmptyArrays(new Object[]{"a", "b", new Object[0]}) ➞ new Object[]{"a", "b"}
Program.removeEmptyArrays(new Object[]{1, 2, new Object[0], 4}) ➞ new Object[]{1, 2, 4}

// O que estou obtendo:
Program.removeEmptyArrays(new Object[]{"a", "b", new Object[0]}) ➞ new Object[]{"a", "b", new Object[0]}
Program.removeEmptyArrays(new Object[]{1, 2, new Object[0], 4}) ➞ new Object[]{1, 2, new Object[0], 4}

Notas

N/A