Kiedy używać Long vs long w java?
Poniżej znajduje się mój interfejs -
public interface IDBClient {
public String read(ClientInput input);
}
To moja implementacja interfejsu -
public class DatabaseClient implements IDBClient {
@Override
public String read(ClientInput input) {
}
}
Teraz mam fabrykę, która pobiera wystąpienieDatabaseClient
lubię to -
IDBClient client = DatabaseClientFactory.getInstance();
....
Teraz muszę zadzwonić doread
metoda mojegoDatabaseClient
który akceptujeClientInput
parametr i poniżej jest klasą dla tego samego. Ta klasa nie została napisana przeze mnie, dlatego mam pytanie na ten temat i jestem prawie pewien, że jest to niewłaściwy sposób.
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;
}
}
Więc kiedy klient dzwoni doread
metodaDatabaseClient
, stworząClientInput
parametr taki jak ten, a następnie użyj fabryki, aby uzyskać wystąpienieDatabaseClient
a następnie odpowiednio wywołaj metodę odczytu.
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);
Oświadczenie o problemie: -
Moje pierwsze pytanie brzmi: czyuserid
, clientid
, timeout_ms
powinno byćLong
obiekt lub po prostulong
wClientInput
klasa?Drugie pytanie, jakie mam, jest możliwe, że klient może przekazać błędne informacje, takie jaknegative user ids
, negative client id
, negative timeout
wartość itp. itd. Następnie, gdzie powinienem wykonać tę weryfikację? Czy powinienem zrobić to sprawdzanie poprawności w konstruktorzeClientInput
klasa czy w innym miejscu? Jaki jest lepszy sposób na to i jak powinienem wykonać walidację?