Java: Definieren einer generischen Methode in einer anonymen Klasse

8

Der folgende Java-Code funktioniert einwandfrei.

%Vor%

Wenn die Methode in ihre generische Form geändert wird, schlägt das Programm fehl.

%Vor%

Warum scheitert es? Wie können Sie generische Methoden in einer anonymen Klasse definieren?

Diese Frage dient Lernzwecken.

    
user7841452 09.04.2017, 18:39
quelle

2 Antworten

10

Das T generic wird nicht explizit von einer Klasse oder einer Schnittstelle abgeleitet. Es stammt also von Object und Object hat keine setEnabled() Methode.

Wenn Sie generisch verwenden möchten, können Sie einen java.swing-Basistyp mit dieser Methode angeben. Zum Beispiel: javax.swing.AbstractButton .

%Vor%     
davidxxx 09.04.2017, 18:48
quelle
11
___ tag123java ___ Java (nicht zu verwechseln mit JavaScript oder JScript oder JS) ist eine universelle objektorientierte Programmiersprache, die für die Verwendung in Verbindung mit der Java Virtual Machine (JVM) entwickelt wurde. "Java-Plattform" ist der Name für ein Computersystem, auf dem Tools zum Entwickeln und Ausführen von Java-Programmen installiert sind. Verwenden Sie dieses Tag für Fragen, die sich auf die Java-Programmiersprache oder Java-Plattform-Tools beziehen. ___ tag123anonymousclass ___ Eine anonyme Klasse ist eine lokale Klasse ohne Namen. Eine anonyme Klasse wird unter Verwendung des neuen Operators in einem einzigen prägnanten Ausdruck definiert und instanziiert. ___ antwort43310542 ___

T löscht Object , das nicht setEnabled hat. Es funktioniert, wenn Sie eine Grenze von JComponent angeben, die setEnabled definiert:

%Vor%     
___ tag123genericmethod ___ hilf uns dieses Wiki zu bearbeiten ___ qstnhdr ___ Java: Definieren einer generischen Methode in einer anonymen Klasse ___ qstntxt ___

Der folgende Java-Code funktioniert einwandfrei.

%Vor%

Wenn die Methode in ihre generische Form geändert wird, schlägt das Programm fehl.

%Vor%

Warum scheitert es? Wie können Sie generische Methoden in einer anonymen Klasse definieren?

Diese Frage dient Lernzwecken.

    
___ answer43310568 ___

Das %code% generic wird nicht explizit von einer Klasse oder einer Schnittstelle abgeleitet. Es stammt also von %code% und %code% hat keine %code% Methode.

Wenn Sie generisch verwenden möchten, können Sie einen java.swing-Basistyp mit dieser Methode angeben. Zum Beispiel: %code% .

%Vor%     
___
Jorn Vernee 09.04.2017 18:45
quelle