Mor*_*ina 3 java variables methods automation
我有一个问题,如果可能的话,如何通过仅提供特定类型的变量来自动生成方法.
让我们用简单的例子说明我的问题: 假设我有多个链接到LinkedLists的变量,我想给出每个特定的方法; 例如setter和getters方法:
private LinkedList football = new LinkedList();
private LinkedList jogging = new LinkedList();
public LinkedList getFootball() {
return football;
}
public void setFootball(LinkedList football) {
this.football = football;
}
public LinkedList getJogging() {
return jogging;
}
public void setJogging(LinkedList jogging) {
this.jogging = jogging;
}
Run Code Online (Sandbox Code Playgroud)
如果变量的数量变长(例子只包含2),这将产生非常长且相当重复的代码和平,如上所示.
有没有办法,如果这确实是一个可能性,概括上面的模式,所以我可以通过创建LinkedList的实例创建两个方法?
PS:使用foreach循环并将其概括为任意元素不起作用.
您可能正在寻找龙目岛:
您可以使用@Getter和/或@Setter注释任何字段,让lombok自动生成默认的getter/setter.
默认的getter只返回字段,如果字段名为foo,则命名为getFoo(如果字段的类型为boolean,则命名为isFoo).
在你的情况下,这个类
@Getter
@Setter
public class MyClass {
private LinkedList football = new LinkedList();
private LinkedList jogging = new LinkedList();
}
Run Code Online (Sandbox Code Playgroud)
会导致以下代码:
public class MyClass {
private LinkedList football = new LinkedList();
private LinkedList jogging = new LinkedList();
public LinkedList getFootball() {
return football;
}
public void setFootball(LinkedList football) {
this.football = football;
}
public LinkedList getJogging() {
return jogging;
}
public void setJogging(LinkedList jogging) {
this.jogging = jogging;
}
}
Run Code Online (Sandbox Code Playgroud)
但是,Lombok 需要一些编译器配置,所以当你在它的时候,你也可以考虑查看Kotlin,你的类可以简单地写成:
class MyClass {
var football = LinkedList<Any?>()
var jogging = LinkedList<Any?>()
}
Run Code Online (Sandbox Code Playgroud)
你不能在运行时这样做.但是,很多IDE都可以选择自动生成getter和setter.
例如,在Eclipse中,左键单击打开上下文菜单,在"Source"下查看,或按Alt+ Shift+ s打开源菜单.在那里你会找到一个标记为"Generate Getters and Setters"的选项,它会打开一个对话框按钮,让你选择要创建的setter和getter,在代码中将它们插入的位置等等.
| 归档时间: |
|
| 查看次数: |
1194 次 |
| 最近记录: |