java - 使用 JavaBeans 在类之间传递数据

标签 java javabeans

一条重要信息:类都是单独的文件,总共有大约10个bean。

我正在处理一个包含多个类的项目,数据必须通过这些类传递。 IE。来自 Class1 的几个字符串必须能够在 Class2 中使用。

我的程序使用带有 set 和 get 方法的 JavaBeans,但是如果我在一个类中设置一个 bean 并尝试在另一个类中获取该数据,我只会返回一个空值。

我不确定最好的方法是什么,我已经很好地定义了 bean,并且想继续使用它们,但我不知道如何使用。

有人能给我指出正确的方向或举个例子吗? 谢谢

编辑

Bean类片段;

public class beans implements java.io.Serializable {



private String string1;


public String getstring1() {

    return this.string1;
}

public void setstring1(String string1) {
    this.string1 = string1;
}

还有 class1 中的 setter 代码:

beans bean = new beans();   
bean.setstring1("test");

以及下注为“got”的类,class2

beans beans = new beans(); String text = bean.getstring1();

这几乎就是我使用 bean 的方式,但它们没有按我希望的那样工作。

最佳答案

在您的示例中,您将在每个类中创建一个新 bean。第一类和第二类引用了两个不同的对象,这就是它们不能访问相同值的原因。

有多种方法可以解决这个问题,具体取决于您的应用。但让我提出一个通用的解决方案。

您可以创建一个 BeanRepository,它负责引用所有 bean 对象。然后其他类需要知道 bean 的 id 并且它们可以获得引用。

BeanRepository(注意静态方法):

public class BeanRepository {
    private static Map<Integer, Bean> beanMap = new HashMap<Integer, Bean>();

    public static void putBean(int id, Bean bean) {
        beanMap.put(id, bean);
    }

    public static Bean getBean(int id) {
        return beanMap.get(id);
    }
}

bean :

public class Bean {
    private String name;

    public Bean(String name) {
        this.name = name;
    }

    public String whoAmI() {
        return name;
    }
}

A 类和 B 类:

public class ClassA {
    private Bean bean;

    public ClassA(int beanId) {
        this.bean = BeanRepository.getBean(beanId);
    }

    public void test() {
        System.out.println("I am ClassA. You are " + bean.whoAmI());
    }
}

public class ClassB {
    private Bean bean;

    public ClassB(int beanId) {
        this.bean = BeanRepository.getBean(beanId);
    }

    public void test() {
        System.out.println("I am ClassB. You are " + bean.whoAmI());
    }
}

测试方法:

public class Main {
    public static void main(String[] args) {
        BeanRepository.putBean(1, new Bean("one"));

        ClassA a = new ClassA(1);
        ClassB b = new ClassB(1);

        a.test();
        b.test();
    }
}

关于java - 使用 JavaBeans 在类之间传递数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29155566/

相关文章:

java - Java Spring 应用程序的巴西时区

java - Eclipse:触发完全重建

java - 理解 JavaBeans 模式(抽象 getter 和 setter)

java - 从 JSF-repeat 检索输入值

java - 在Java中插入和搜索大量数据

java - 在Java中查询数据库后返回一个数组

java - session 属性框架

java - 无法使用 <jsp :useBean>: "Bean cannot be resolved to a type"

java - 如何动态创建java bean?

java - POJO Property change listener - 理想方式