It doesn't make the difference...:-( Of course, make it non-static will work technically, but conceptually it is not correct, and performance-wise not right either... This should be a very common problem, how does everyone handling this?
--- In [EMAIL PROTECTED], "Keith Hatton" <[EMAIL PROTECTED]> wrote: > Perhaps something like this: > > class A { > private static MyLog mLog; > protected myId; > A(){ > this("A"); > } > > protected A(String id) { > myId = id; > init myLog with myId... > } > > public void doSth(String aMsg){ > mLog.debug(aMsg); > } > } > > class B extends A{ > B(){ > super("B"); > } > } > > > Keith > > > -----Original Message----- > From: wleana [mailto:[EMAIL PROTECTED] > Sent: 03 April 2003 10:05 > To: [EMAIL PROTECTED] > Subject: static/inherit problem > > > Hi, I have a design issue related to the fact that the Logger needs > to be static. And suppose I have A and its subclass B. > > I have a wrapper MyLog that wraps around Logger and a myId field of > each class, in which, the log message always print out myId of its > caller. > > class A { > private static MyLog mLog; > protected myId; > A(){ > myId = "A"; > init myLog with myId... > } > > public void doSth(String aMsg){ > mLog.debug(aMsg); > } > } > > class B extends A{ > B(){ > myId = "B"; > super() > } > } > > When I do this: > B b=new B(); > b.doSth("blah"); > > The log will actually show the caller's myId is "A", instead of "B". > (you see I even make the myId field non-static because of the same > issue, but actually I would like it to be static conceptually) > > I have tried different ways, it only works if mLog is not static, the > within doSth from class A, it will actually dynamically use object of > type B's mLog...But we want the Logger class (or its wrapper class) > to belong to class not to an object...how should we solve this? What > should be the right design of this? Please share your thoughts. > > Thanks a lot. > -wleana > > > -------------------------------------------------------------------- - > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > > -------------------------------------------------------------------- - > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]