ich vor kurzem habe mit retrolambda Bibliothek gestartet lambdas in Android Entwicklung zu unterstützen, und ich erhielt die folgende Warnung von Android Studio:Warnung in Android Studio: Kann mit R-Gespräch ersetzt wird
kann mit dem R-Gespräch ersetzt werden .
Diese Inspektion meldet foreach-Schleifen, die durch Stream-API-Aufrufe ersetzt werden können.
Mein Code ist wie folgt:
// mGeofenceList is a List<Geofence>
mGeofenceList = new ArrayList<>();
// GeofenceUtils.GeofenceObjects.entrySet() is a HashMap<String, LatLng>
for (Map.Entry<String, LatLng> entry : GeofenceUtils.GeofenceObjects.entrySet()) {
mGeofenceList.add(new Geofence.Builder()
.setRequestId(entry.getKey())
.setCircularRegion(
entry.getValue().latitude,
entry.getValue().longitude,
GeofenceUtils.GEOFENCE_RADIUS_IN_METERS)
.setExpirationDuration(GeofenceUtils.GEOFENCE_EXPIRATION_IN_MILLISECONDS)
.setTransitionTypes(Geofence.GEOFENCE_TRANSITION_ENTER |
Geofence.GEOFENCE_TRANSITION_EXIT)
.build());
}
Frage: Wie kann ich es mit R-Gespräch ersetzen?
UPDATE: wenn ich alt gedrückt + geben Sie konvertiert Code folgende:
// method stream() cannot be found
mGeofenceList.addAll(GeofenceUtils.GeofenceObjects.entrySet().stream()
.map(entry -> new Geofence.Builder()
.setRequestId(entry.getKey())
.setCircularRegion(
entry.getValue().latitude,
entry.getValue().longitude,
GeofenceUtils.GEOFENCE_RADIUS_IN_METERS)
.setExpirationDuration(GeofenceUtils.GEOFENCE_EXPIRATION_IN_MILLISECONDS)
.setTransitionTypes(Geofence.GEOFENCE_TRANSITION_ENTER |
Geofence.GEOFENCE_TRANSITION_EXIT)
// Collectors cannot be found
.build()).collect(java.util.stream.Collectors.toList()));
Und jetzt heißt es, dass es nicht Methode Strom auflösen kann(), Sammler. Ist es reparierbar? Kann ich einige Importanweisungen hinzufügen? Oder wird es derzeit nicht von RetroLambda unterstützt?
UPDATE: Gelöst, siehe die Antwort unten.
Besuch dieses http://stackoverflow.com/questions/23127445/how-to-suppress-can-be-replaced-with-foreach-call -warning –
@harshad, ich sah diese Antwort und es hat nichts mit meiner Frage zu tun. –
Klicken Sie auf Alt + Enter und ersetzen Sie es dann –