我有一个带有以下参数化构造函数的对象Customer:
TrackingSerializer
。
我需要为所有参数创建getter和setter方法。
我尝试了以下方法,但不确定是否正确。
Customer(String lastName, String firstName, String phone, String email)
答案 0 :(得分:0)
在Java中寻址变量时,请小心使用大写/小写字母!
lastName 与 LastName
是不同的变量此外,您的吸气剂和吸气剂看起来是正确的。一般来说, getter是一个不带参数并返回实例变量值的函数,setter是一个带参数并使用其更新实例变量的函数。
如果愿意,您可以使设置器返回一个布尔值以标记更新是否成功(尽管对于当前示例而言,这不是必需的,因为我们可以假设更新将成功)。
public boolean setLastName(String newLastName){
//Attempt to update the instance variable
this.LastName = newLastName;
//check that the instance variable has been successfully updated.
//Return true if that's the case. False otherwise
return (this.LastName).equals(newLastName);
}
答案 1 :(得分:0)
无需使用newLastName。只需为方法参数使用相同的名称即可。
public String getLastName(){
return lastName;
}
public void setLastName(String lastName){
this.lastName = lastName;
}
如果使用的是Eclipse,则可以在Java文件中,右键单击->源->生成Getter和Setters 。
答案 2 :(得分:0)
这个问题比您想象的要深。实际上有几种不同的getter和setter样式,并且,如果您在团队中,则使用相同样式比选择“正确”样式更为重要。如果只是为了您自己,那么您拥有的一切就很好。如果是用于学校项目,则老师可能会有风格指导。如果是真正的工作,那么建筑师应该有一个风格指南。
例如,有些人喜欢这种二传手
class PersonalInfo {
private String firstname;
private String lastname;
public PersonalInfo firstname(String firstname) {
this.firstname = firstname;
return this;
}
public PersonalInfo lastname(String lastname) {
this.lastname = lastname;
return this;
}
}
允许使用类似的代码
PersonalInfo pi = new PersonalInfo()
.firstname("John")
.lastname("Smith");
如果您查找生成器样式的构造函数,这是获得相同结果的一种廉价方法,但实际上并未创建单独的类。
第二,如果您自己编写这些内容,则说明您犯了一个错误。如果您使用的编辑器没有创建它们的功能,请下载Eclipse并使用它。
第三,我宁愿完全不写它们,而是使用Lombok。它是一个生成所有重复样本的工具,使您的源代码混乱不堪。