Я создал Lambda на основе этого URL-адреса: https://docs.aws.amazon.com/lambda/latest/dg/java-handler-io-type-pojo.html. Есть три основных класса:
package example;
import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;
public class HelloPojo implements RequestHandler<RequestClass, ResponseClass>{
public ResponseClass handleRequest(RequestClass request, Context context){
String greetingString = String.format("Hello %s, %s.", request.firstName, request.lastName);
return new ResponseClass(greetingString);
}
}
является обработчиком Lambda.
package example;
public class RequestClass {
String firstName;
String lastName;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public RequestClass(String firstName, String lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
public RequestClass() {
}
}
это класс запроса.
package example;
public class ResponseClass {
String greetings;
public String getGreetings() {
return greetings;
}
public void setGreetings(String greetings) {
this.greetings = greetings;
}
public ResponseClass(String greetings) {
this.greetings = greetings;
}
public ResponseClass() {
}
}
это класс ответа.
Вход - это что-то вроде строк:
{ "firstName": "John", "lastName": "Doe" }
При этом у меня есть некоторые вопросы относительно RequestClass. Прямо сейчас это зависит от того, есть ли имя и фамилия, предоставленные как часть ввода. Однако, скажем, предоставляется только имя firstName, и я хочу иметь другой конструктор в RequestClass только с параметром firstName и инициализировать lastName значением lastName по умолчанию, что-то вроде
public RequestClass(String firstName) {
this.firstName = firstName;
this.lastName = "defaultLastName";
}
Когда я пытаюсь сделать что-то в этом духе и получаю доступ к переменным в handleRequest, я могу получить firstName, но lastName всегда имеет значение null (предположительно, потому что я не предоставляю его как часть ввода). Любая причина, по которой это происходит, и что я могу сделать, чтобы при доступе к lastName в классе обработчика я мог получить «defaultLastName» вместо null?
Пожалуйста, дайте мне знать, если есть дополнительные разъяснения, которые я должен добавить, я не очень часто публикую сообщения в StackOverflow и хочу убедиться, что мой вопрос уместен!