對於較小的輔助工具類的集合,我創建了一個普通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