Lors de l'utilisation de Longues vs long en java?

Ci-dessous est mon Interface -

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

C'est ma mise en Œuvre de l'Interface -

public class DatabaseClient implements IDBClient {

    @Override
    public String read(ClientInput input) {

    }
}

Maintenant, j'ai une usine qui devient l'instance de DatabaseClient comme celui -

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

Maintenant, j'ai besoin de faire un appel à read méthode de mon DatabaseClient qui accepte le ClientInput paramètre et ci-dessous est la classe la même. Cette classe n'a pas été écrit par moi, donc c'est la raison pour laquelle je vais avoir une question à ce sujet et je suis à peu près sûr que c'est la mauvaise façon de le faire.

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

Ainsi, lorsque le client de faire un appel pour read méthode de DatabaseClient, ils vont créer le ClientInput paramètre comme ceci, puis utilisez l'usine pour obtenir l'Instance de DatabaseClient, puis d'appeler la méthode de lecture en conséquence.

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

Énoncé Du Problème:-

  1. Donc, ma première question est la userid, clientid, timeout_ms devrait être Long objet ou tout simplement long dans ClientInput classe?
  2. Deuxième question que j'ai est, il pourrait être possible que le client peut passer de fausses informations telles que negative user ids, negative client id, negative timeout valeur etc etc.. Alors où je dois faire cette validation? Dois-je faire cette vérification de la validation dans le constructeur de ClientInput classe ou à un autre endroit? Quelle est la meilleure façon de le faire et comment dois-je procéder à la validation?
Vous avez posé deux questions très différentes. Vous devriez en faire deux séparés offres, comme Stackoverflow n'est pas destiné à être un groupe de discussion. Je suis sûr que vous trouverez à la fois les questions posées et a répondu à de nombreuses fois avant. Sur la première question, rechercher lors de l'utilisation de l'objet et de l'utilisation d'une primitive. Pour la deuxième question, la recherche pour la validation des arguments / paramètres.

OriginalL'auteur AKIWEB | 2014-01-10