【发布时间】:2016-01-13 03:48:28
【问题描述】:
我无法修改 A 类或 B 类。A 类和 B 类的规模都很大(有几个嵌套的类和数百个参数)。对于多线程,内存占用会影响性能。我正在检查所有减少内存使用的方法。基本上我试图限制 B 类实例的范围,以便 GC 最早可以对其进行处理。 (供您参考:我已经知道我可以做到 B b = new B(); b.setS("Calm Down"); a.setB(b);)
这是场景:
Class A{
private B b;
public getB{return b}
public void setB (B b){this.b = b;}
}
Class B{
private String s;
//getters and setters for s}
Class MyNeed{
A a = new A();
// Here I'm trying to create an obj B and set S and then pass that obj to a.setB().
a.setB (new B().setS("Param S Set"));
}
所以我猜 new B() 是 setB() 的本地。所以在下一行 new B() 超出了范围。
但是在 Eclipse 中,我得到了 setB() 不能接受 void 的错误。我猜是 setS() 返回 void。
可能是我遗漏了一些概念。但我想要这么简单的东西。如何实现这一点。
【问题讨论】:
-
公开 B setB (B b){this.b = b;返回这个;} } 对不起。我错过了返回类型。谢谢
标签: java json multithreading