Una buena Práctica en Java es evitar utilizar Null cada vez que fuera posible. Pero… porque?
Generalmente, las variables, referencias y colecciones nulas son difíciles de manejar e identificar en código Java ya que estos no se pueden identificar en tiempo de compilación y da como resultado una NullPointerException en tiempo de ejecución.
Si tu código retorna una collection que no tiene ningun valor, retornar una collection vacía en vez de null va a evitar una innecesaria cantidad de «if/else» para checkear elementos null.
public List<Product> getOrderProducts{
return(null==this.products ?
Collections.emptyList()
: this.products);
}