【发布时间】:2011-09-21 17:36:56
【问题描述】:
为了收集较小的辅助实用程序类,我创建了一个通用的class MyUtils:
// MyUtils.java
public final class MyUtils
{
public static class Helper1 {};
public static class Helper2 {};
//...
}
MyUtils 内部的这个帮助类将在包的其他文件中使用:
// MyClass1.java
public class MyClass1
{
private MyUtils.Helper1 help1 = new MyUtils.Helper1();
public void method ()
{
private MyUtils.Helper2 help2 = new MyUtils.Helper2();
}
}
为了让它们可以访问,我在MyUtils 中设置了static(它自己没有任何数据/函数成员)。我的代码是线程安全的之前创建MyUtils。
我担心的是,通过使这些inner 类static它们保持线程安全,当它们的多个实例将存在于文件中时?或者他们的任何不好的暗示是我因为让他们static而错过了吗?
编辑:我没有触及helper 类中的任何共享变量。我唯一担心的是static 类的实例是否是线程安全的(因为它们是static)。
【问题讨论】:
标签: java static thread-safety inner-classes