Collections List in List<SpecificType> als stat. generische Methode zurückgeben

  • Themenstarter Themenstarter Hotzenplotz1337
  • Beginndatum Beginndatum
H

Hotzenplotz1337

Gast
Hallo zusammen,

ich versuche gerade mit den Generics klar zu kommen.

In Jface gibt es folgendes Konstrukt was eine List d. h. ohne Generic Typ zurückgibt

Java:
((IStructuredSelection)selection).toList();

Ich möchte nun gerne eine statische Methode schreiben, welcher ich den Zieldatentypen übergeben kann

D. h. wenn ((IStructuredSelection)selection).toList(); Strings beinhaltet würde ich gerne der Funktion als Parameter mitteilen das sind Strings oder Integer etc.

Mein glückloser Versuch ist folgender:
Java:
public static <T> List<T> getAllSelectedElements(ISelection selection)
	{
		List<T> ret = null;
		if(selection instanceof IStructuredSelection){
			List<T> object = ((IStructuredSelection)selection).toList();
			
		}
		return ret;
	}

Hoffe das ist verständlich und freue mich über etwaige Lösungsvorschläge
 
Abgesehen davon, dass ich noch nicht ganz durchgestiegen bin was Du vorhast, wird in dem bisher geposteten Code die Variable ret nie initialisiert.
 
Hotzenplotz1337: eindeutig ein anderes Problem.

Zu deiner ursprünglichen Frage: Natürlich geht das:
Java:
public class Foo {

    public static void test() {
        List<String> answer = Foo.<String> getAllSelectedElements(/* ... */);
    }

    @SuppressWarnings("unchecked")
    public static <T> List<T> getAllSelectedElements() {
        List ret = null;
        if (selection instanceof IStructuredSelection) {
            ret = ((IStructuredSelection) selection).toList();
        }
        return ret;
    }
}
Augenmerk auf Zeilen 4 und 11.
 

Zurück
Oben