При программировании с использованием класса ThreadLocal, должно ли поле объявляться окончательным? , если код записи private ThreadLocal<String> threadLocal
и инициализировать его позже в конструкторе, так как переменная threadLocal больше не может быть изменена, я думаю, что она равна private final ThreadLocal<String> threadLocal;
. Эта идея правильная? В чем разница между следующим методом в многопоточном классе?Должно ли threadlocal объявлено как окончательное поле
public class ThreadLocalTestForMultiThread{
private ThreadLocal<String> threadLocal;
public ThreadLocalTestForMultiThread(){
threadLocal = new ThreadLocal<String>();
}
}
public class ThreadLocalTestForMultiThread{
private final ThreadLocal<String> threadLocal;
public ThreadLocalTestForMultiThread(){
threadLocal = new ThreadLocal<String>();
}
}
Ваш второй пример не должен компилироваться. – Codebender
@Codebender, да, вы правы, не очень думали об этом – lawrence
Поскольку вы новичок здесь, не забудьте принять ответ, всякий раз, когда это помогло самому. См. Также http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work. –