Hmm. This seems to be a bug in jde.util.ClassPathZip.load():

    void load() throws IOException {
        ZipFile zipFile = new ZipFile(zipOrJar);
        Enumeration enum = zipFile.entries();
        while (enum.hasMoreElements()) {
            ZipEntry zipEntry = (ZipEntry)enum.nextElement();
            String current = zipEntry.getName();
            if (current.toLowerCase().endsWith(".class")) {
                current = current.substring(0, current.length() - 6);
                current = current.replace('/', '.');
                current = current.replace('\\', '.');
                super.addClass(current);
            }
        }
        setLoaded(true);
    }

The inner-class .class file will be called "class$innerClass.class", leading
to the problem Henrik describes, so maybe another substitution should be
added:

                current = current.replace('$', '.');

My JDE installation is lagging behind, so I haven't tested it, but this
seems to make sense. If so, the same change should be made to
jde.util.ClassPathDir.addRecursively.

/ Petter

-----Original Message-----
From: Henrik Kj�r [mailto:[EMAIL PROTECTED]]
Sent: den 29 november 2002 14:51
To: [EMAIL PROTECTED]
Subject: jde-wiz-implement-interface


There is a bug in the interface wizard - it insert $ when the interface to
be implemented
uses inner classes.

Example:
My interface -
import path.Class;

public interface MyInterface {
 void myMethod(Class.innerClass)
}
will result in
import path.Class$innerClass;
MyInterfaceImpl implement MyInterface {
public void(Class$innerClass class$innerClass) {
}

Henrik Kj�r

Reply via email to