我正在开发一个新Android
项目(Java
),并创建了一个包含大量变量的Object。由于我打算为所有这些添加吸气剂和吸气剂,因此我想知道:是否存在Eclipse
在给定类中自动生成吸气剂和吸气剂的捷径?
this.getCount()
,只要可以引用,就不要调用this.mCount
。尽管这可能是一个成本更高的操作,但它是一种更干净的方法,可以通过getter和setter访问其他对象的变量。
我正在开发一个新Android
项目(Java
),并创建了一个包含大量变量的Object。由于我打算为所有这些添加吸气剂和吸气剂,因此我想知道:是否存在Eclipse
在给定类中自动生成吸气剂和吸气剂的捷径?
this.getCount()
,只要可以引用,就不要调用this.mCount
。尽管这可能是一个成本更高的操作,但它是一种更干净的方法,可以通过getter和setter访问其他对象的变量。
Answers:
在所需类的源代码窗口中弹出上下文菜单(即右键单击)。然后选择Source
子菜单;从该菜单中选择Generate Getters and Setters...
将导致出现向导窗口。
Source -> Generate Getters and Setters...
选择您要为其创建getter和setter的变量,然后单击OK
。
SHIFT
+ ALT
+ 访问此子菜单S
,然后按来打开Generate Getters和Setters选项R
。
Right click -> Source -> Generate setters and getters
但是,为了使其更方便,我总是这个映射到 ALT + SHIFT+ G从Windows -> Preferences -> General -> Keys
所有其他答案仅集中在IDE级别上,这些不是生成getter和setter的最有效,最优雅的方法。 如果您有数十个属性,则相关的getter和setter方法将使您的类代码非常冗长。
我曾经用来自动生成getter和setter的最佳方法是在Java项目中使用项目lombok批注当您编译Java代码时,lombok.jar将生成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的方法-
1)按 Alt+ Shift+键S,然后R
2)右键单击 ->源->生成Getter和Setters
3)转到源菜单 ->生成Getter和Setters
4)进入Windows菜单 ->首选项->常规->键(写生成)文本字段上的Getters和Setters)
5)单击字段的错误灯泡 ->创建Getters和Setters ...
6)按 Ctrl+3并在文本字段上编写Getters和Setters,然后选择选项Generate Getters&Setters
如果Mac OS按Alt + cmd + S,则选择Getters&Setters
按Alt + Shift + S + R ...,然后仅选择要生成Getter或Setter或同时生成这两个字段的所有字段
有一个开源的jar可以称为Lombok,您只需添加jar,然后使用@Getter和@Setter注释您的POJO。自动创建getter和setter。
除此之外,我们还可以使用其他功能,例如@ToString,@EqualsAndHashCode以及其他很酷的功能,它们可以从您的应用程序中删除原始代码
1)转到Windows->首选项->常规->键
2)选择command
“ 生成Getter和Setters ”
3)在中Binding
,按要使用的快捷方式(例如Alt + Shift + G)
4)单击“ 申请”,您就可以开始了
为您的Pojos使用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的“数据”类。您最终只需要编写更少的代码行。