Nunca compare objetos (order é um objeto da classe String) com ==.
Use o método equals e, de preferência, comparando o valor que já é sabido com o valor a ser comparado:
Agora eu buguei. if("Sayser time".equals(order)
No exemplo acima caso order seja null, vai dar false, não nullPointer.
No exemplo abaixo é o inverso, vai dar nullPointer caso order seja null: if(order.equals("Sayser time")
Por isso o correto seria o valor estatico na frente e o variável como parametro do equals.
Mas a ideia de se comparar desta maneira é, justamente, evitar um NPE.
Teoricamente, você nunca deve esperar que o sistema, negocialmente, estoure o NPE. Afinal, ou é igual a Sayser time ou Sayser Date, não? Qualquer coisa diferente disso, incluindo null, é diferente de ambos.
Entendeu?
Exatamente, mas por isso, vc faz: if("Sayser time".equals(order))
pra evitar NPE, ou faz: if(order != null && order.equals("Sayser time"))
O fato é q n pode deixar ocorrer NPE e fazendo apenas: if(order.equals("Sayser time"))
pode ocorrer. Em nenhum dos casos vai dar true quando for null, mas no último vai dar erro e quebrar a rotina.
O fato é q precisa tratar a possibilidade de vir NULL, nem que seja com try/catch
Só abrindo mais um parenteses:
(se tratando da variavel order receber a leitura do console, não vai vir null, no máximo vazio, mas seguir o padrão sempre)
@blayd2015, a questão não é morte ao NPE, a questão é que NPE é um indício forte de que o programador não fez alguma coisa direito.
É por isso que tanto se insiste em inversão de controle, injeção de dependências e afins.