java - 在同一类的特定实例之间共享数据

标签 java spring spring-boot

我遇到以下问题。假设我们有Assignment 类的两个实例。 每个实例都有一个开始日期和一个结束日期。当第一个作业结束时,第二个作业开始。现在,我在第一个作业中获得了一些信息,当第一个作业过期时,第二个作业中也需要这些信息。

对于这两个实例,我需要类似静态变量的东西,但对于整个类来说不是静态的。

最好的方法是什么?

谢谢

马蒂亚斯

================编辑================

我认为我的问题不够具体。 我知道如何将数据从一个复制到另一个,但这在这种情况下不合适。

我的任务是在员工和项目之间建立联系,以解决 n:n 关系。但一名员工可能对同一项目执行多项任务,而我需要对所有任务都很重要的信息。

如果我更新分配 1 中的信息,则应在将员工连接到该特定项目的所有其他分配中更新该信息。 出于性能原因,我更愿意在一个中心位置更改此设置,而不是手动复制信息。

================编辑================

我思考了这个问题,我认为如果每个作业都包含对信息的引用,我的问题就可以解决。这样,其中一项分配的更改应自动分配给其他分配。

================编辑================

Abaddon666 的答案和注释是正确的,剩下的问题是如何以正确的方式共享对所有分配实例的引用。我们通过这样的方式解决了这个问题:我们使用数据库中的一个表,在其中存储带有两个外键的信息,并在需要时加载员工和特定项目的信息。我会接受Abaddon666的答案,但也许有比当前更好的解决方案。

最佳答案

您想要实现的目标是基本的Composition 。 您希望某种类型的 1 到 x 个实例共享相同的值。这可以通过创建一个类来模拟您的共享信息并将其作为字段添加到您的作业中来实现:

public class Assignment{
    private Date startDate;
    private Date endDate;
    private Information information;

    public Assignment(Information information){
         this.information = information
    }

    public Information getInformation(){
         return this.information
    }
...
}

...

Information sharedInformation = new Information();
Assignment assignment1 = new Assignment(sharedInformation);
Assignment assignment2 = new Assignment(sharedInformation);

关于java - 在同一类的特定实例之间共享数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54790641/

相关文章:

java - 如何扩展 log4j2 gelf 附加程序 (biz.paluch.logging) 以添加自定义 GelfSender

java - 在 JLabel 中使用空格与在 GridBagLayout 中使用 ipadx/ipady

即使我更改了作业参数验证器,Spring 批处理作业参数也不会被覆盖

java - Spring不在构造函数中使用 boolean 值创建bean

java - 如何更新我的 Eclipse 项目以包含“spring-boot-start-security-1.4.1.RELEASE.jar

java - 在 Spring Boot 中自动将参数从表单传递到 URL

java - org.springframework.boot.actuate.autoconfigure.metrics.MetricsEndpointAutoConfiguration 上的错误处理条件

java.lang.NoSuchMethodError : javax. servlet.http.HttpServletResponse.getStatus()

java - 是否可以使用camel循环遍历文本文件来创建路线?

Java 在对象中创建对象