Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsWhite Papers
Discussion GroupsFirst AidDatabasesJavaBeansGUIJava 3DVirtual MachineCORBASecurityToolsGeneral
Java DirectoryOpen Source ProjectsSample Book ChaptersUser GroupsWeb Resources
Related Topics
Databases.NETMore Topics ...

Java Forum / General / April 2006

Tip: Looking for answers? Try searching our database.

why transient variable can not be final?

Thread view: 
v4vijayakumar@yahoo.com - 13 Apr 2006 10:09 GMT
why transient variable can not be final?
Thomas Hawtin - 13 Apr 2006 09:40 GMT
> why transient variable can not be final?

They can, but it can be difficult to make use of.

As readObject is only a "psuedo-constructor", it cannot initialise final
fields. ObjectInputStream will create the object with null/0/'\0'/false
for that field.

There are a few ways around this. java.util.Random in 1.6 cheats by
using sun.misc.Unsafe. It may be possible to introduce a superclass that
does not implement java.io.Serializable but has the field with
appropriate initialisation (unlike Serializable subclasses, it's no-arg
constructor will be called). Or you can use readResolve to construct a
replacement object (this does not play so well with inheritance).

Tom Hawtin
Signature

Unemployed English Java programmer
http://jroller.com/page/tackline/



Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.