对于较小的辅助工具类的集合,我创建了一个普通class MyUtils
:静态内部类线程在另一个java类中是否安全?
// 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();
}
}
为了让他们可以访问,我已经让他们static
在MyUtils
(它没有任何自己的数据/函数成员)。我的代码是线程安全的之前创建MyUtils
。
我担心的是,通过使这些inner
类static
将它们保持线程安全,当他们的多个实例将整个文件是否存在?或者是他们的任何暗示我错过了,因为他们static
?
编辑:我没有触及helper
类中的任何共享变量。我唯一担心的是static
类的实例是线程安全的(因为它们是static
)。
+1,这是一个好点。 – iammilind