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]

Reply via email to