java - 如何在java中重复代码

标签 java swing

因此,对于我正在做的一个学校项目,我正在复制并粘贴相同的代码,只是更改标识符名称。

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/

相关文章:

java - 为什么这段嵌套的 ArrayList 代码会抛出异常?

java - 从菜单转发操作到父类

java - 线程 "AWT-EventQueue-0"java.lang.NullPointerException 中出现异常 - Paint()

java - 如何从 Java Swing 应用程序中识别监视器?

java - JPanel 位于另一个 JPanel 内 : Swing

java - Eclipse 错误消息 ArrayList()

java - 为什么 Java 无法加载此类 : com. android.org.conscrypt.OpenSSLRSAPublicKey

java - 如何删除 JRE 系统库中的 .jar 文件?

java - 从 Dropbox 中的 txt 文件下载文本

java - Java中基于权重的对象匹配(不是内存中对象的实际权重)