Replacing Methods From Different Classes

  <[email protected]>
Newsgroups gmane.comp.jakarta.bcel.user
Message-ID <[email protected]>
Hi,
I am trying to replace a method binding from one class with another method in another class.  I haven't quite gotten this to work and any help would be appreciated.  Consider the example below:


public class A {

    public class X {
        public X() { 
            m();      //can this be changed?
        }
	
        public void m() {
            System.out.println("A.X.m()");
        }
    }

    public static void main (String args []) {
    A a = new A();
    X x = a.new X();
    }
}


public class B extends A {

    public class X {
        public void m() {
            System.out.println("B.X.m()");
        }
    }
}



I am wondering if it is possible to change A.X.m() to reference B.X.m().  I know the use of inner classes here is not essential, and the fact that B extends A would make the need for overriding A.X.m() in A seemingly absurd.  This is more of a test to see if methods can be replaced in odd contexts.  My real goal is much larger.

I have used BCELifier to create some files and I tried to edit them to reflect the desired change, but got stuck on VerifiyErrors.  I'm not sure exactly what needs to be updated.  Also, I thought ClassGen.replaceMethod would work, but found a few errors.  Can anyone provide some insights?


_____________________________________________________________
Get free email chat news and more ---> http://www.thingfind.com
Send a virtual greeting card!--->http://thingfind.com/cards/create.html 
Free domain names!--->http://signup.nom.vg
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.