2016-11-01 3 views
3

Ich habe einig alten (pre Java 6) Code, der auf dem sun.misc.Service API abhängt, wie zum Beispiel:Ersatz Klasse für sun.misc.Service

sun.misc.Service.providers(MyServiceProvider.class); 

Diese Klasse (nicht nur verinnerlicht) in Java entfernt wird 9.

Welche alternative Java SE API kann ich verwenden?

Antwort

6

Die sun.misc.Service Klasse wurde von java.util.ServiceLoader in Java 6.

Die folgenden Codebeispiele sind gleichwertig ersetzt worden:

Vor

Iterator<MyServiceProvider> = sun.misc.Service.providers(MyServiceProvider.class); 

Nach

Iterator<MyServiceProvider> = java.util.ServiceLoader.load(MyServiceProvider.class).iterator(); 

Wie schon in Kommentaren erwähnt, gibt es java.util.ServiceLoader schon lange (Java 6).

+3

'java.util.ServiceLoader' ist seit Java 1.6 da gewesen. – EJP

+0

@EJP Yep, der Code, den ich habe vor Java 6. Nur Dokumentation der Entfernung von dieser API und was ist ihr Ersatz (seit jdeps nicht). Dies ist ein Fall, in dem Code, der seit vielen Jahren funktioniert, in Java 9 nicht mehr funktioniert. –