我一直在尝试设置一些 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;
}
}
问题是没有返回一个空对象,我得到一个完全实例化的对象,所有值都设置为空(就好像该对象是使用无参数构造函数创建的)。
所以在这种情况下,我会得到一个带有 [stuff = null] 的对象:
@Test
void takeObjectFromSpace() {
Object object = new Object("HelloWorld");
objectInteration.simpleWriteObject();
System.out.println(objectInteraction.readObject().getStuff());
}
实际上,如果空间中没有任何内容,它应该返回一个完整的空对象,但事实并非如此。
有没有人有任何想法?