Java參數傳遞問題--Java語言特性

最近開發遇到個深入了Java特性的問題,

不使用方法形式參數傳遞變量,如何實現兩個不同package的類方法之間傳遞可變局部參數,而不引發併發問題。

@Service
public Class A {
public static String TempUserParentdistnameValue;

 @Autowired
 private SearchTranslation searchTranslation;

public List<UserAD> searchUserADs(SearchCriteriaIDM searchCriteriaIDM) {
        for (OrganizationAD orgAD : orgADList) {
            TempUserParentdistnameValue = orgAD.getDistinguishedName();
            Filter userFilter = searchTranslation.getLdapFiter(searchCriteriaIDM.getFilter(), UserInfoIDM.class);
            hasOrgIdResutlUsers.addAll(userInfoRepo.getUsersByFilter(userFilter));
        }
       
    }
}

@Component
public class SearchTranslation {
    public getLdapFiter(String a, Class class){
            b();

}
    private b(){

            String field = USER_PARENTDISTNAME;
            String value = UserInfoService.TempUserParentdistnameValue;
           
        }
 
}

上面代碼寫了個static變量:TempUserParentdistnameValue,犯了個低級錯誤。會引入併發問題。

現在暫時想到的是用ThreadLocal!這個方法是可行的。但就是代碼稍微複雜了點

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章