如何在 emacs 中为 Java 类实现“生成 getter/setter”?

2024-03-22

有时我怀念使用 IDE 的懒惰,它让我只编写 Java 类的属性,然后让 IDE 生成所需的 getter/setter。

Emacs 可以做到这一点吗?

目前我只是从上一行复制粘贴一对 getter/setter,然后复制粘贴并修改它。这很简单,但是,让编码变得更有趣:)


您特别询问了有关生成 getter/setter 对的问题。你可以编写 elisp 来做到这一点。但研究一个更通用的解决方案可能会很有趣。

为了解决这个问题,我通常使用ya-片段 http://code.google.com/p/yasnippet/。该名称指的是“Yet Another Snippet package”,因此您可以确定问题之前已得到解决。但我发现 ya-snippet 是满足我需求的最有用、最简单、最强大的解决方案。

对于具有 getter/setter 的属性,我输入

prop<TAB>

...我会得到一个可以填写的模板,就像表格一样。我指定属性的名称,然后生成其他所有内容。非常好,简单。

这适用于您在代码中常用的任何微模式。我有单例、构造函数、for 循环、switch 语句、try/catch 等的片段。

ya-snippet 的关键是无需编写 elisp 代码。基本上我只是提供模板的文本,它就可以工作。这是您在上面看到的 getter/setter 代码片段的 ya-snippet 代码:

# name : getter/setter property ... { ... }
# key: prop
# --
private ${1:Type} _${2:Name};
public ${1:Type} get$2 {
    ${3://get impl}
}
public void set$2($1 value) {
    ${4://set impl}
}

“# --”上方的所有内容都是片段的元数据。 “密钥”是该元数据中最重要的部分 - 它是可以扩展的短序列。该名称显示在 yasnippet 菜单上。下面的东西# --行是扩展代码。它包括几个填写字段。

YAsnippet 适用于 emacs 中的任何编程模式(java、php、c#、python 等),也适用于其他文本模式。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 emacs 中为 Java 类实现“生成 getter/setter”? 的相关文章

随机推荐