Когда использовать Long против Long в Java?

Ниже мой интерфейс -

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

Это моя реализация интерфейса -

public class DatabaseClient implements IDBClient {

    @Override
    public String read(ClientInput input) {

    }
}

Теперь у меня есть фабрика, которая получает экземплярDatabaseClient нравится -

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

Теперь мне нужно позвонитьread метод моегоDatabaseClient который принимаетClientInput Параметр и ниже это класс для того же. Этот класс не был написан мной, поэтому у меня возник вопрос по этому поводу, и я почти уверен, что это неправильный способ сделать это.

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

Поэтому, когда клиент звонитread методDatabaseClientони создадутClientInput параметр, как это, а затем использовать фабрику, чтобы получить экземплярDatabaseClient и затем вызовите метод чтения соответственно.

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

Постановка задачи:-

Итак, мой первый вопрос:userid, clientid, timeout_ms должно бытьLong объект или простоlong вClientInput класс?Второй вопрос, который у меня есть, может быть, что клиент может передать неверную информацию, такую какnegative user ids, negative client id, negative timeout значение и т. д. Тогда, где я должен сделать эту проверку? Должен ли я сделать эту проверку проверки в конструктореClientInput класс или в каком-то другом месте? Какой лучший способ сделать это и как мне сделать проверку?

Ответы на вопрос(7)

Ваш ответ на вопрос