Wann verwendet man Long vs long in Java?

Unten ist mein Interface -

public interface IDBClient {
    public String read(ClientInput input);
}

Dies ist meine Implementierung der Schnittstelle -

public class DatabaseClient implements IDBClient {

    @Override
    public String read(ClientInput input) {

    }
}

Jetzt habe ich eine Fabrik, die die Instanz von bekommtDatabaseClient so was -

IDBClient client = DatabaseClientFactory.getInstance();
....

Jetzt muss ich anrufenread Methode meinerDatabaseClient die akzeptiert dieClientInput Parameter und unten ist die Klasse für das gleiche. Diese Klasse wurde nicht von mir geschrieben, deshalb habe ich eine Frage dazu und ich bin mir ziemlich sicher, dass dies der falsche Weg ist.

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;
    }
}    

Also, wenn der Kunde anruftread Methode vonDatabaseClient, werden sie das schaffenClientInput Parameter wie folgt und verwenden Sie dann die Fabrik, um die Instanz von zu erhaltenDatabaseClient und rufen Sie dann die Lesemethode entsprechend auf.

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);

Problemstellung:-

Meine erste Frage lautet also: Tut das?userid, clientid, timeout_ms sollte seinLong Objekt oder einfach nurlong imClientInput Klasse?Die zweite Frage, die ich habe, könnte sein, dass der Kunde falsche Informationen weitergeben kann, wie znegative user ids, negative client id, negative timeout Wert etc etc .. Wo soll ich dann diese Validierung machen? Soll ich diese Überprüfung im Konstruktor von durchführen?ClientInput Klasse oder an einem anderen Ort? Was ist der bessere Weg dies zu tun und wie soll ich die Validierung durchführen?

Antworten auf die Frage(7)

Ihre Antwort auf die Frage