我正在一个新的Android项目(Java)上工作,并创建了一个具有大量变量的对象。由于我计划为所有这些类添加getter和setter,我想知道:在Eclipse中是否有自动生成给定类中的getter和setter的快捷方式?
当前回答
对于pojo使用Project Lombok或更好的Kotlin。
(同时,将Kotlin添加到你的简历中;))
这样的:
public class BaseVO {
protected Long id;
@Override
public boolean equals(Object obj) {
if (obj == null || id == null)
return false;
if (obj instanceof BaseVO)
return ((BaseVO) obj).getId().equals(id);
return false;
}
@Override
public int hashCode() {
return id == null ? null : id.hashCode();
}
// getter setter here
}
public class Subclass extends BaseVO {
protected String name;
protected String category;
// getter setter here
}
会变成这样:
open class BaseVO(var id: Long? = null) {
override fun hashCode(): Int {
if (id != null)
return id.hashCode()
return super.hashCode()
}
override fun equals(other: Any?): Boolean {
if (id == null || other == null || other !is BaseVO)
return false
return id.hashCode() == other.id?.hashCode()
}
}
@Suppress("unused")
class Subclass(
var name: String? = null,
var category: String? = null
) : BaseVO()
或者使用Kotlin的“数据”类。你最终会写更少的代码行。
其他回答
确定。
从源菜单或选定字段或类型的上下文菜单或类型中的文本选择中使用生成getter和setter来打开对话框。生成getter和setter对话框显示了所选类型的所有字段的getter和setter。方法按类型的字段分组。
查看帮助文档了解更多信息。
我更喜欢先创建私有字段
private String field;
Eclipse将通过将光标定位在新变量上,按Ctrl + 1自动突出显示该变量。然后它将为您提供创建getter和setter的菜单。
我按下Ctrl + 1,因为它对我认为你接下来想要的东西更有智慧。
所有其他答案都只关注IDE级别,这些都不是生成getter和setter的最有效和优雅的方式。 如果您有数十个属性,相关的getter和setter方法将使您的类代码非常冗长。
我使用过的自动生成getter和setter的最好方法是在java项目中使用项目lombok注释,lombok.jar将在编译java代码时生成getter和setter方法。
您只需关注类属性/变量的命名和定义,lombok将完成其余的工作。这很容易维护您的代码。
例如,如果你想为age变量添加getter和setter方法,你只需要添加两个lombok注释:
@Getter @Setter
public int age = 10;
它等于这样的代码:
private int age = 10;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
您可以在这里找到关于lombok的更多详细信息:Project lombok
右键单击要为其生成getter和setter的属性并进行选择
Source -> Generate Getters and Setters...
在Eclipse中打开类文件 双击类名或突出显示它 然后导航到源->插入代码 单击Getter和Setter
它会打开一个弹出窗口来选择要为其生成getter/setter方法的字段。选择字段并点击“生成”按钮。
推荐文章
- 我如何处理ImeOptions的完成按钮点击?
- 将所有非字母数字字符替换为空字符串
- 漂亮地打印Java集合(toString不返回漂亮输出)
- 静态嵌套类在Java,为什么?
- 如何防止Eclipse在启动时挂起?
- 模块是用不兼容的Kotlin版本编译的。其元数据的二进制版本为1.5.1,预期版本为1.1.15
- Optional和Optional的区别是什么?flatMap和Optional.map?
- 如何在Android工作室添加“libs”文件夹?
- 使用什么api来绘制其他应用程序(如Facebook的Chat Heads)?
- Java中枚举的命名:单数还是复数?
- getDefaultSharedPreferences和getSharedPreferences的区别
- 如何模拟按钮点击使用代码?
- JavaBean和POJO之间的区别是什么?
- 注释在Java中如何使用,在哪里使用?
- 如何在Ubuntu下安装JDK 11 ?