unbekanntes Generic

Status
Nicht offen für weitere Antworten.
G

Gast

Gast
Morgen,

hab gerade eine Deklaration einer Methode gesehen, mit der ihc nicht sehr viel anfangen kann, und zwasr

Code:
static <S> ServiceLoader<S> load(Class<S> service, ClassLoader loader)

static ist mir klar-> Klassenmethode
das aleinstehende <S> irritiert mich ein bisschen, mit dem kann ich nichts anfangen, und das Class<S> ist mir auch nicht ganz klar,
 
M

maki

Gast
Moment mal..

der Rückgabewert sollte doch ServiceLoader<S> sein, oder stehe ich jetzt auf dem Schlauch?
Was macht dieses <S> da???
 

byte

Top Contributor
maki hat gesagt.:
Was macht dieses <S> da???

Damit spezifizierst Du den Typparameter der Methode. Klarer wirds bei sowas:

Code:
public <T extends Foobar> T toFoobar() { ... };

Benutzt man nur Typparameter, die schon durch die Klasse spezifiziert sind, dann braucht man das nicht bei der Methode angeben.
 
G

Guest

Gast
Das heißt dann quasi, dass man nur FooBar oder eine Subklasse von FooBar returnen kann,
 

byte

Top Contributor
In diesem Fall, ja. Auf jeden Fall muss jeder Typparameter irgendwo definiert sein, entweder für die gesamte Klasse (class Foobar<T>) oder für eine Methode (public <T> void foobar(T arg)).
 

Marco13

Top Contributor
Das alleingestellte <S> kann man bei statischen Methoden verwenden, um dem Typ festzulegen. Sinngemäß (und NUR zur Verdeutlichung!!!) schreibt man bei statischen Methoden eben nicht
Code:
class Foo<S>
{
    static S getSomething();
}
(was nichts bringen würde, weil man ja nicht ein "new Foo<String>" erstellen will, nur um die (statische) Methode für Strings aufrufen zu können) sondern eben
Code:
class Foo
{
    static <S> S getSomething();
}
 

byte

Top Contributor
Das trifft nicht nur auf statische Methoden zu. Du kannst auch in ganz normalen Objekten (nicht statische) Methoden parametrisieren mit Typen, die nicht für die gesamte Klasse definiert sind.
Wichtig ist einfach nur, dass die Typen irgendwo definiert werden, entweder für die gesamte Klasse oder für eine Methode.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
MarvinsDepression Unbekanntes Zeichen in fremden Code wirft Fragen auf Allgemeine Java-Themen 4
L Unbekanntes Problem Allgemeine Java-Themen 1
O Werte einer Generic LinkedList zusammenrechenen Allgemeine Java-Themen 14
Rakshan Generic reading of XML document from the root tag into an Collection Allgemeine Java-Themen 0
B In Java Methode mit generic input und output basteln? Allgemeine Java-Themen 4
N Generic Type einer Generischen Klasse während der Laufzeit bekommen Allgemeine Java-Themen 2
S Problem mit Generic bei unmodifiableCollection Allgemeine Java-Themen 4
Neumi5694 Methoden Generic: Rückgabetyp als Class-Parameter übergeben Allgemeine Java-Themen 3
Neumi5694 Datentypen Generic mit parameterlosem Konstructor Allgemeine Java-Themen 4
C Generic collections und static typing Allgemeine Java-Themen 4
K Generic class und Reflection Allgemeine Java-Themen 2
K Saubere Verwendung von Generic Types Allgemeine Java-Themen 7
T Generic Allgemeine Java-Themen 1
C Generic-Funktion nur bei bestimmten Typen erlauben Allgemeine Java-Themen 6
M Cannot create a generic array of T Allgemeine Java-Themen 5
N Generic extends Generic Allgemeine Java-Themen 5
TheWhiteShadow Generic Bug? Allgemeine Java-Themen 19
P Generic zur Laufzeit Allgemeine Java-Themen 4
X Generic muss zwei Klassen/Interfaces erfüllen Allgemeine Java-Themen 5
S Reflection und Generic Allgemeine Java-Themen 9
G Klasse eines Generic Allgemeine Java-Themen 6
J Generic von einer ArrayList/HashMap bekommen Allgemeine Java-Themen 7
G Generic merhfach Angabe Allgemeine Java-Themen 8
Dragonfire Generic Typ zur Laufzeit Allgemeine Java-Themen 9
N Casten durch generic vermeiden ?? Allgemeine Java-Themen 10
N generic reflection Allgemeine Java-Themen 5
thE_29 Generic Methoden die sich aufrufen wollen nicht immer Allgemeine Java-Themen 12
A Generic-Problem. was meint ihr dazu? Allgemeine Java-Themen 4
K Bound mismatch: The generic method sort(List<T>) of ty Allgemeine Java-Themen 4
V ArrayList ist nicht generic!?? Oder bin ich blöd? Allgemeine Java-Themen 2
G [quote]the type HashMap is not generic; it cannot be paramet Allgemeine Java-Themen 4
C Generic Type ermitteln Allgemeine Java-Themen 3
H References to generic type Test.A<typ> should be param Allgemeine Java-Themen 5
byte Generic Type einer List zur Laufzeit rausfinden? Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben