Vou postar um exemplo simplificado que acho mais fáçil explicar:
Classe A:
package br;
public class A {
protected static void clean(Container container) {
Component comps[] = container.getComponents();
for (Component comp : comps) {
System.out.println(comp.getClass().getCanonicalName());
if (comp instanceof JRootPane || comp instanceof JPanel
|| comp instanceof JLayeredPane)
clean((Container) comp);
if (comp instanceof JTextField)
((JTextField) comp).setText("");
}
}
}
Classe B:
package br;
import static br.A.clean;
import javax.swing.JInternalFrame;
public abstract class B extends JInternalFrame {
public void clean() {
clean(this);
}
}
Por que a linha clean(this) acusa esse erro:
The method clean() in the type B is not applicable for the arguments (B)
Enquanto o é applicavel para o clean(Container c) da classe A que esta importado staticamente?
Resolvi isso mudando:
clean(this);
Para:
A.clean(this);