Como chamar um construtor pai específico da classe interna anônima?
Ok, então eu sei que uma classe interna anônima está implicitamente estendendo uma classe pai ou implementando uma interface e, portanto, um construtor da superclasse precisará ser chamado. No entanto, não tenho certeza de como criar um construtor para a classe anônima (se isso for possível) e sem definir um construtor, não tenho certeza de como fazer chamadas para super ()! Aqui está o meu código de prática:
public class AnonymousConstructor {
public static void main(String[] args) {
//I'm not sure how to explicitly call one of the arg super constructors
MyBob my = new MyBob() {
//I would like to do something like this super("String"); or
//super("String", "String");
};
}
}
class MyBob extends Thread {
MyBob() {
System.out.println("No arg constructor");
}
MyBob(String a) {
System.out.println("Arg constructor");
}
MyBob(String a, String b) {
System.out.println("2 arg constructor");
}
public void run() {
System.out.println("Outer");
}
}
Minha preocupação é que, se você tentar criar uma classe anônima a partir de uma classe que não tenha um construtor no-arg, o código falhará no tempo de compilação, porque não há como passar um argumento para o superconstrutor. Esta é uma preocupação válida e, se sim, existe uma maneira de contornar isso?