Quando usar Long vs long em java?
Abaixo está minha interface -
public interface IDBClient {
public String read(ClientInput input);
}
Esta é a minha implementação da interface -
public class DatabaseClient implements IDBClient {
@Override
public String read(ClientInput input) {
}
}
Agora eu tenho uma fábrica que recebe a instância deDatabaseClient
como isso -
IDBClient client = DatabaseClientFactory.getInstance();
....
Agora preciso fazer uma ligação pararead
método do meuDatabaseClient
que aceita oClientInput
parâmetro e abaixo é a classe para o mesmo. Esta aula não foi escrita por mim, por isso, estou fazendo uma pergunta sobre isso e tenho quase certeza de que essa é a maneira errada de fazê-lo.
public final class ClientInput {
private Long userid;
private Long clientid;
private Long timeout_ms = 20L;
private boolean debug;
private Map<String, String> parameterMap;
public ClientInput(Long userid, Long clientid, Map<String, String> parameterMap, Long timeout_ms, boolean debug) {
this.userid = userid;
this.clientid = clientid;
this.parameterMap = parameterMap;
this.timeout_ms = timeout_ms;
this.debug = debug;
}
}
Então, quando o cliente faz uma chamada pararead
método deDatabaseClient
, eles criarão oClientInput
parâmetro como este e, em seguida, use a fábrica para obter a Instância deDatabaseClient
e chame o método de leitura de acordo.
Map<String, String> paramMap = new HashMap<String, String>();
paramMap.put("attribute", "segmentation");
ClientInput input = new ClientInput(109739281L, 20L, paramMap, 1000L, true);
IDBClient client = DatabaseClientFactory.getInstance();
client.read(input);
Declaração do problema: -
Então, minha primeira pergunta é:userid
, clientid
, timeout_ms
deveria estarLong
objeto ou simplesmentelong
noClientInput
classe?A segunda pergunta que tenho é: pode ser possível que o cliente possa passar informações erradas, comonegative user ids
, negative client id
, negative timeout
valor etc etc .. Então, onde devo fazer essa validação? Devo fazer essa verificação de validação no construtor deClientInput
aula ou em algum outro lugar? Qual é a melhor maneira de fazer isso e como devo fazer a validação?