Olá kra…
Procurei algum plugin pra fazer isso e não achei também. Então eu estava dando uma olhada no artigo sobre reflection aqui no GUJ (http://www.guj.com.br/java.tutorial.artigo.10.1.guj) e acabei tendo a idéia de montar alguma coisa com reflection.
Olha só:
import java.lang.reflect.*;
public class Main {
public static void main(String args[]) {
try {
Class cls = Class.forName("Bairro");
Method methlist[] = cls.getDeclaredMethods();
System.out.println("public interface " + cls.getSimpleName() + "{");
for (int i = 0; i < methlist.length; i++) {
Method m = methlist[i];
String metodoInterface = "";
metodoInterface += Modifier.toString(m.getModifiers()); //Modificador
metodoInterface += " " + m.getReturnType().getName(); //Tipo de retorno
metodoInterface += " " + m.getName(); //Nome do método
Class parametros[] = m.getParameterTypes(); //Parâmetros
String params = "";
for (int j = 0; j < parametros.length; j++){
if (j==0){
params = parametros[j].getName() + " p" + j;
}else{
params += ", " + parametros[j].getName() + " p" + j;
}
}
metodoInterface += "(" + params + ")";
Class exceptions[] = m.getExceptionTypes();
String expts = "";
for (int j = 0; j < exceptions.length; j++){
if (j==0){
expts = " throws " + exceptions[j].getName();
}else{
expts += ", " + exceptions[j].getName();
}
}
metodoInterface += expts + ";";
System.out.println("\t" + metodoInterface);
}
System.out.println("}");
}
catch (Throwable e) {
System.err.println(e);
}
}
}
Montei a classe bairro com algumas coisas a mais para testar… exceptions por exemplo:
import java.io.FileNotFoundException;
import java.io.IOException;
public class Bairro {
int id = 0;
String nome = "";
public String getNome() {
return this.nome;
}
public int getId() {
return this.id;
}
public void setNome(String nome) throws IOException, FileNotFoundException{
this.nome = nome;
}
public void setId(int id) throws Exception{
this.id = id;
}
}
A saída de dados foi essa:
public interface Bairro{
public java.lang.String getNome();
public void setNome(java.lang.String p0) throws java.io.IOException, java.io.FileNotFoundException;
public void setId(int p0) throws java.lang.Exception;
public int getId();
}
Caso você queira que saía somente o nome da classe nos tipos de dados, troque as chamadas getName() por getSimpleName(). Mas depois passe, no caso do eclipse, organizando os imports.
Você pode melhor também isso e tentar montar um plugin no eclipse. Tem um artigo aqui no GUJ também explicando como fazer isso (http://www.guj.com.br/java.tutorial.artigo.41.1.guj).
Bem acho que é isso. Galera do GUJ, não sei se é recomendável ficar postando esse montão de código assim, ou se é melhor postar um arquivo. Por favor, qualquer coisa me avisem.
Abraços.