The way you presented it, if each thread has its one copy, then it can be called thread-safe, as maximum of accessing threads is one.
Another thing - if you declare your fields as private
and create the instance of that class as final
, then it's immutable (final User user = new User(...)
). There are no setters, so the object cannot be modified as well as it cannot change its reference. If you wanted to keep the immutability, you would have to make setters return a new instance of this object with changed fields.
@markspace noticed, that better approach would be to declare fields as final, because if you use the previous one and make User
a member of some class, it won't work (unless final).
manpreet
Best Answer
2 years ago
I have a java class as below
The way this class is used is, for every thread 1 object of this User class is created. Now since there is one copy of object for every thread, can i call this class as thread safe?
Do I need to synchronize these methods?