我正在一个新的Android项目(Java)上工作,并创建了一个具有大量变量的对象。由于我计划为所有这些类添加getter和setter,我想知道:在Eclipse中是否有自动生成给定类中的getter和setter的快捷方式?


当前回答

我更喜欢先创建私有字段

private String field;

Eclipse将通过将光标定位在新变量上,按Ctrl + 1自动突出显示该变量。然后它将为您提供创建getter和setter的菜单。

我按下Ctrl + 1,因为它对我认为你接下来想要的东西更有智慧。

其他回答

在所需类的源代码窗口中调出上下文菜单(即右键单击)。然后选择Source子菜单;从菜单中选择Generate getter和Setters…将会出现一个向导窗口。

生成getter和setter…

选择要为其创建getter和setter的变量,然后单击OK。

确定。

从源菜单或选定字段或类型的上下文菜单或类型中的文本选择中使用生成getter和setter来打开对话框。生成getter和setter对话框显示了所选类型的所有字段的getter和setter。方法按类型的字段分组。

查看帮助文档了解更多信息。

右击->源->生成setter和getter

但为了更方便,我总是从Windows -> Preferences -> General -> Keys将其映射为ALT+SHIFT+G

对于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的“数据”类。你最终会写更少的代码行。

1)进入Windows->首选项->常规->按键

2)选择命令“Generate Getters and Setters”

3)在绑定中,按快捷键喜欢使用(如Alt+Shift+G)

4)单击apply,你就可以开始了