【发布时间】:2015-08-08 16:26:21
【问题描述】:
我搜索了保存/共享要在全球范围内使用的数据的最佳方法,正如预期的那样,我找到了很多答案。引起我注意的方法之一是使用静态字段。但是,那里的静态字段方式是这样的:
public class DataHolder
{
private static String dataString;
public static String getDataString
{
return dataString;
}
public static void setString(String dataString)
{
this.dataString = dataString;
}
}
但我总是这样做:
public class DataHolder
{
public static String dataString;
}
我只是想知道后者不是比前者容易得多吗?因为我不必设置任何 getter 和 setter 方法。而且我看不出两者有什么区别。那么为什么不推荐第二个呢?
我之前也被告知,按我的方式行事有时会导致内存泄漏问题。但是第一个解决方案不会导致内存泄漏问题吗?
【问题讨论】:
-
Static方法很少用于这些尝试(get或set)。 -
您隐藏了实现细节(就像所有封装一样)。这使您可以在不破坏代码的情况下对其进行修改。如果您想将数据存储在
Data类型中,您可以更改字段变量,然后在setString方法中将String解析为Data(我建议更改名称),然后从@987654331 @ 到String在getString方法中。 -
您可能想阅读此链接,该链接主要讨论首先需要获取/设置方法! stackoverflow.com/questions/1568091/…
-
如果这不是其他团队会使用的公共 API,请不要担心,裸字段没问题。以后可以随时重构。
标签: java memory-leaks shared-memory static-variables