Index: trunk/src/org/openstreetmap/josm/actions/JoinNodeWayAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/JoinNodeWayAction.java	(revision 10714)
+++ trunk/src/org/openstreetmap/josm/actions/JoinNodeWayAction.java	(revision 10716)
@@ -94,5 +94,5 @@
         for (Node node : selectedNodes) {
             List<WaySegment> wss = Main.map.mapView.getNearestWaySegments(
-                    Main.map.mapView.getPoint(node), OsmPrimitive.isSelectablePredicate);
+                    Main.map.mapView.getPoint(node), OsmPrimitive::isSelectable);
 
             MultiMap<Way, Integer> insertPoints = new MultiMap<>();
Index: trunk/src/org/openstreetmap/josm/actions/MergeNodesAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/MergeNodesAction.java	(revision 10714)
+++ trunk/src/org/openstreetmap/josm/actions/MergeNodesAction.java	(revision 10716)
@@ -73,5 +73,5 @@
         if (selectedNodes.size() == 1) {
             List<Node> nearestNodes = Main.map.mapView.getNearestNodes(
-                    Main.map.mapView.getPoint(selectedNodes.get(0)), selectedNodes, OsmPrimitive.isUsablePredicate);
+                    Main.map.mapView.getPoint(selectedNodes.get(0)), selectedNodes, OsmPrimitive::isUsable);
             if (nearestNodes.isEmpty()) {
                 new Notification(
Index: trunk/src/org/openstreetmap/josm/actions/ReverseWayAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/ReverseWayAction.java	(revision 10714)
+++ trunk/src/org/openstreetmap/josm/actions/ReverseWayAction.java	(revision 10716)
@@ -134,5 +134,5 @@
     @Override
     protected void updateEnabledState(Collection<? extends OsmPrimitive> selection) {
-        setEnabled(selection.stream().anyMatch(OsmPrimitive.wayPredicate));
+        setEnabled(selection.stream().anyMatch(Way.class::isInstance));
     }
 }
Index: trunk/src/org/openstreetmap/josm/actions/UnGlueAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/UnGlueAction.java	(revision 10714)
+++ trunk/src/org/openstreetmap/josm/actions/UnGlueAction.java	(revision 10716)
@@ -255,5 +255,5 @@
         private static boolean isUsedInRelations(final Collection<Node> existingNodes) {
             return existingNodes.stream().anyMatch(
-                    selectedNode -> selectedNode.getReferrers().stream().anyMatch(OsmPrimitive.relationPredicate));
+                    selectedNode -> selectedNode.getReferrers().stream().anyMatch(Relation.class::isInstance));
         }
 
Index: trunk/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java	(revision 10714)
+++ trunk/src/org/openstreetmap/josm/actions/mapmode/DeleteAction.java	(revision 10716)
@@ -362,7 +362,7 @@
         DeleteParameters result = new DeleteParameters();
 
-        result.nearestNode = Main.map.mapView.getNearestNode(e.getPoint(), OsmPrimitive.isSelectablePredicate);
+        result.nearestNode = Main.map.mapView.getNearestNode(e.getPoint(), OsmPrimitive::isSelectable);
         if (result.nearestNode == null) {
-            result.nearestSegment = Main.map.mapView.getNearestWaySegment(e.getPoint(), OsmPrimitive.isSelectablePredicate);
+            result.nearestSegment = Main.map.mapView.getNearestWaySegment(e.getPoint(), OsmPrimitive::isSelectable);
             if (result.nearestSegment != null) {
                 if (shift) {
Index: trunk/src/org/openstreetmap/josm/actions/mapmode/DrawAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/mapmode/DrawAction.java	(revision 10714)
+++ trunk/src/org/openstreetmap/josm/actions/mapmode/DrawAction.java	(revision 10716)
@@ -399,5 +399,5 @@
 
         boolean newNode = false;
-        Node n = Main.map.mapView.getNearestNode(mousePos, OsmPrimitive.isSelectablePredicate);
+        Node n = Main.map.mapView.getNearestNode(mousePos, OsmPrimitive::isSelectable);
         if (ctrl) {
             Iterator<Way> it = ds.getSelectedWays().iterator();
@@ -469,5 +469,5 @@
                 // Insert the node into all the nearby way segments
                 List<WaySegment> wss = Main.map.mapView.getNearestWaySegments(
-                        Main.map.mapView.getPoint(n), OsmPrimitive.isSelectablePredicate);
+                        Main.map.mapView.getPoint(n), OsmPrimitive::isSelectable);
                 if (snapHelper.isActive()) {
                     tryToMoveNodeOnIntersection(wss, n);
@@ -761,5 +761,5 @@
      */
     private void tryToSetBaseSegmentForAngleSnap() {
-        WaySegment seg = Main.map.mapView.getNearestWaySegment(mousePos, OsmPrimitive.isSelectablePredicate);
+        WaySegment seg = Main.map.mapView.getNearestWaySegment(mousePos, OsmPrimitive::isSelectable);
         if (seg != null) {
             snapHelper.setBaseSegment(seg);
@@ -790,5 +790,5 @@
 
         if (!ctrl && mousePos != null) {
-            currentMouseNode = mv.getNearestNode(mousePos, OsmPrimitive.isSelectablePredicate);
+            currentMouseNode = mv.getNearestNode(mousePos, OsmPrimitive::isSelectable);
         }
 
@@ -796,5 +796,5 @@
         // *and* there is no node nearby (because nodes beat ways when re-using)
         if (!ctrl && currentMouseNode == null) {
-            List<WaySegment> wss = mv.getNearestWaySegments(mousePos, OsmPrimitive.isSelectablePredicate);
+            List<WaySegment> wss = mv.getNearestWaySegments(mousePos, OsmPrimitive::isSelectable);
             for (WaySegment ws : wss) {
                 mouseOnExistingWays.add(ws.way);
@@ -1088,5 +1088,5 @@
         // This happens when nothing is selected, but we still want to highlight the "target node"
         if (mouseOnExistingNode == null && getLayerManager().getEditDataSet().selectionEmpty() && mousePos != null) {
-            mouseOnExistingNode = Main.map.mapView.getNearestNode(mousePos, OsmPrimitive.isSelectablePredicate);
+            mouseOnExistingNode = Main.map.mapView.getNearestNode(mousePos, OsmPrimitive::isSelectable);
         }
 
Index: trunk/src/org/openstreetmap/josm/actions/mapmode/ExtrudeAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/mapmode/ExtrudeAction.java	(revision 10714)
+++ trunk/src/org/openstreetmap/josm/actions/mapmode/ExtrudeAction.java	(revision 10716)
@@ -391,6 +391,6 @@
         updateKeyModifiers(e);
 
-        selectedNode = Main.map.mapView.getNearestNode(e.getPoint(), OsmPrimitive.isSelectablePredicate);
-        selectedSegment = Main.map.mapView.getNearestWaySegment(e.getPoint(), OsmPrimitive.isSelectablePredicate);
+        selectedNode = Main.map.mapView.getNearestNode(e.getPoint(), OsmPrimitive::isSelectable);
+        selectedSegment = Main.map.mapView.getNearestWaySegment(e.getPoint(), OsmPrimitive::isSelectable);
 
         // If nothing gets caught, stay in select mode
@@ -570,5 +570,5 @@
     private static void addNewNode(MouseEvent e) {
         // Should maybe do the same as in DrawAction and fetch all nearby segments?
-        WaySegment ws = Main.map.mapView.getNearestWaySegment(e.getPoint(), OsmPrimitive.isSelectablePredicate);
+        WaySegment ws = Main.map.mapView.getNearestWaySegment(e.getPoint(), OsmPrimitive::isSelectable);
         if (ws != null) {
             Node n = new Node(Main.map.mapView.getLatLon(e.getX(), e.getY()));
Index: trunk/src/org/openstreetmap/josm/actions/mapmode/ImproveWayAccuracyHelper.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/mapmode/ImproveWayAccuracyHelper.java	(revision 10714)
+++ trunk/src/org/openstreetmap/josm/actions/mapmode/ImproveWayAccuracyHelper.java	(revision 10716)
@@ -41,5 +41,5 @@
         }
 
-        Node node = mv.getNearestNode(p, OsmPrimitive.isSelectablePredicate);
+        Node node = mv.getNearestNode(p, OsmPrimitive::isSelectable);
         Way candidate = null;
 
@@ -57,5 +57,5 @@
         }
 
-        return Main.map.mapView.getNearestWay(p, OsmPrimitive.isSelectablePredicate);
+        return Main.map.mapView.getNearestWay(p, OsmPrimitive::isSelectable);
     }
 
Index: trunk/src/org/openstreetmap/josm/actions/mapmode/ParallelWayAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/mapmode/ParallelWayAction.java	(revision 10714)
+++ trunk/src/org/openstreetmap/josm/actions/mapmode/ParallelWayAction.java	(revision 10716)
@@ -321,5 +321,5 @@
         if (!mouseHasBeenDragged) {
             // use point from press or click event? (or are these always the same)
-            Way nearestWay = mv.getNearestWay(e.getPoint(), OsmPrimitive.isSelectablePredicate);
+            Way nearestWay = mv.getNearestWay(e.getPoint(), OsmPrimitive::isSelectable);
             if (nearestWay == null) {
                 if (matchesCurrentModifiers(setSelectedModifierCombo)) {
@@ -522,5 +522,5 @@
     // TODO: rename
     private boolean initParallelWays(Point p, boolean copyTags) {
-        referenceSegment = mv.getNearestWaySegment(p, Way.isUsablePredicate, true);
+        referenceSegment = mv.getNearestWaySegment(p, OsmPrimitive::isUsable, true);
         if (referenceSegment == null)
             return false;
Index: trunk/src/org/openstreetmap/josm/actions/relation/AbstractRelationAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/relation/AbstractRelationAction.java	(revision 10714)
+++ trunk/src/org/openstreetmap/josm/actions/relation/AbstractRelationAction.java	(revision 10716)
@@ -27,5 +27,5 @@
             // Diamond operator does not work with Java 9 here
             return new SubclassFilteredCollection<OsmPrimitive, Relation>(
-                    primitives, OsmPrimitive.relationPredicate);
+                    primitives, Relation.class::isInstance);
         }
     }
