Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Wenn ich implements ActionListener mache, muss ich ja die ActionPerformed Methode implementiert haben.
Kann ich eig sehen was in der Schnittstelle ActionListener für Methoden vorhanden sind?
Also kann ich es allgemein auch bei anderen Schnittstellen sehen, ausser jetzt in der Api zu lesen.
Sondern wirklich so sehen, wie wenn ich eine Interface erstelle und dort die Methoden deklariere
Neben den Möglichkeiten, die die IDE bietet, könntest du die Methoden auch per Reflection abfragen. Entweder nur die direkt deklarierten oder auch inklusive der ererbten:
Java:
import java.util.Arrays;
interface A {
void doAStuff();
}
interface B extends A {
int doBStuff(int op1, int op2);
}
public class Main {
public static void main(String[] args) {
System.out.println(Arrays.toString(B.class.getDeclaredMethods()));
System.out.println(Arrays.toString(B.class.getMethods()));
}
}
Der Sourcecode ist doch in den meisten Fällen verfügbar und lässt sich sogar in der IDE betrachten.
Finde Reflection ist hier nur die Notvariante. Ich hätte zumindest keine Lust das immer über Reflection zu machen
Über Reflexion ist das einerseits aufwändig, andererseits unvollständig. Über Reflexion findest du heraus, daß die Methode setInt(int i) ein Int als Argument im Aufruf erwartet. Es sagt dir aber nicht, daß nur 0 und 42 gültige Werte sind und die Methode nur damit aufgerufen werden darf und alles andere katastrophale Folgen hätte.
Über Reflexion ist das einerseits aufwändig, andererseits unvollständig. Über Reflexion findest du heraus, daß die Methode setInt(int i) ein Int als Argument im Aufruf erwartet. Es sagt dir aber nicht, daß nur 0 und 42 gültige Werte sind und die Methode nur damit aufgerufen werden darf und alles andere katastrophale Folgen hätte.
Wenn ich das richtig verstehe, dann muß z.B. eine Methode z.B. so deklariert werden:
Java:
void setInt(@NonNull int i){
...
}
Ich wüßte zwar nicht daß jemand so Code schreibt (ich bin in diesem Thread bisher von fremdem Code ausgegangen), bei privat deklarierten Codeteilen schonmal gar nicht, aber nun ja, warum auch nicht.
Ich wüßte zwar nicht daß jemand so Code schreibt (ich bin in diesem Thread bisher von fremdem Code ausgegangen), bei privat deklarierten Codeteilen schonmal gar nicht, aber nun ja, warum auch nicht.