因此,对于我正在做的一个学校项目,我正在复制并粘贴相同的代码,只是更改标识符名称。
if (s1.isSelected()){
System.out.println("Hello");
String query = "update booking set s1 = 0 where bdate ='"+d+"';";
stmt.executeUpdate(query);
}
if (s2.isSelected()){
System.out.println("Hello");
String query = "update booking set s2 = 0 where bdate ='"+d+"';";
stmt.executeUpdate(query);
}
if (s3.isSelected()){
System.out.println("Hello");
String query = "update booking set s3 = 0 where bdate ='"+d+"';";
stmt.executeUpdate(query);
}
如何将此代码重复 100-120 次?有没有一种简单的方法可以做到这一点?
谢谢。
最佳答案
了解
void putClientProperty(Object key, Object value);
和
Object getClientProperty(Object key);
几乎每个 GUI 系统,包括二进制 Win32,都有类似的概念来使用/在组件中存储特定数据。这彻底消除了愚蠢的可重复代码、奇怪的 if
系列等。例如
List<JCheckBox> boxes = ... ;
for(...){
JCheckBox box = ... // create, add listeners and position component by code
boxes.add(box);
box.putClientProperty("seat", anSeatObject );
}
需要时,在事件监听器中,或在保存阶段可以读取此信息;
边距的附加说明:我个人更喜欢带有 SeatsByDate 的表格,而不是数百列。在您的模型中查询免费座位几乎是不可能的。 因为我更喜欢JPA,所以我会制作实体
@Enitity
SeatsByDate {
@Id
int id;
@ManyToOne
ReserationDate date;
bool isReserved;
}
然后
SeatsByDate anSeatObject
所以 JPA 是我个人的偏好,ClientProperty
也可能是简单的字符串。
关于java - 如何在java中重复代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50999481/