JavaSpaces - 返回的对象(读取/取出)所有值为空

时间:2018-01-11 09:12:53

标签: java javaspaces

我一直试图设置一些JavaSpaces的东西,但我遇到的问题很奇怪。

假设这是对象(在这种情况下不使用Object,只是试图模糊/概括)我试图放置:

import net.jini.core.entry.*;

public class Object implements Entry {
   private String stuff;

   public Object() {}

   public Object ( String s) {
      stuff = s;
   }    

   public String getStuff() { return this.stuff; }
}

这是写方法:

public void simpleWriteObject(Object object)
{
    try {
        space.write(object, null, 10000);
    } catch (Exception e)
    {

    }
}

(我已尝试过多种写入方法,包括声称已成功提交的完整交易。)

现在阅读是:

public Object readObject()
{
    JavaSpace space = getSpace();

    Object objectTemplate = new Object();

    try {
        Object object = (Object) space.read(objectTemplate, null, LONG.TIME);
        return object;
    } catch (Exception e)
    {
        System.out.println("An error occurred. Error: " + e);
        return null;
    }
}

问题是没有返回null对象,我得到一个完全实例化的对象,其中所有值都设置为null(就像使用无参数构造函数创建对象一样)。

所以在这种情况下,我会在其中找到一个带有[stuff = null]的对象:

@Test
void takeObjectFromSpace() {
    Object object = new Object("HelloWorld");
    objectInteration.simpleWriteObject();
    System.out.println(objectInteraction.readObject().getStuff());
}

实际上,如果空间中没有任何东西,它应该返回一个完整的空对象,但它不会。

有没有人有任何想法?

1 个答案:

答案 0 :(得分:1)

(找到我自己的问题的解决方案。)

实现Entry的所有对象必须将其所有变量都设置为Public。