Petter M�hl�n writes:
> 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.
>
Hi Petter,
The changes you suggest make sense to me so I made them in the CVS repository.
They will appear in the next release. I'll rely on Henrik to check then if
they fix the problem.
- Paul
> / 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