Como descompilar classes internas

2 respostas
A

Gostaria de saber se existe alguma forma de descompilar uma classe e sua classe interna. Ja testei o Dj mas ele não esta descompilando a classe interna. Será que é algum parametro que eu devo passar para o descompilador ou sera que não é possíve.

Obrigado

2 Respostas

LPJava

vc está falando dos bytecodes? quebrar os bytecodes?

T

Digamos que você tenha o seguinte código:

import java.util.*;
/**
 * Grave este programa no arquivo TesteInnerClass.java
 * Compile este programa
 * Os seguintes arquivos devem ser criados:
 * TesteInnerClass.class
 * TesteInnerClass$1.class
 * TesteInnerClass$Classe1.class
 */
class TesteInnerClass {
    class Classe1 {
		int x = 0;
	    public void metodo1 () { 
		    x = 2;
		}
	}
	public static void main(String[] args) {
	    SortedSet alunos = new TreeSet (new Comparator() {
		    public int compare (Object obj1, Object obj2) {
			    return 0;
			}
		});
	}
}

Este código tem uma “inner class” chamada Classe1, e uma “anonymous inner class” que foi construída quando usamos essa
construção “new Comparator() {”.
As inner classes com nomes normalmente têm um nome composto pela classe externa (nesse caso “TesteInnerClass”), um cifrão ($), e o nome dela (nesse caso “Classe1”.) Então o nome completo da classe é TesteInnerClass$Classe1, e para você descompilar a classe, precisa descompilar também “TesteInnerClass$Classe1.class”.
As anonymous inner classes normalmente têm um nome composto pela classe externa (nesse caso “TesteInnerClass”), um cifrão ($), e um número seqüencial que começa por 1. Nesse exemplo, a classe anônima que implementa Comparator se chama TesteInnerClass$1".

Criado 31 de janeiro de 2008
Ultima resposta 31 de jan. de 2008
Respostas 2
Participantes 3