> On 1 Oct 2018, at 16:38, Daniel Fuchs <daniel.fu...@oracle.com> wrote: > > Hi Chris, > > I believe you should get rid of the parameter U: I do not > see it's purpose in this class. I suggest simplifying into: > > <T> T checkValueType(Object value, Class<T>) { }
Good suggestion. So the full diff is: --- a/src/jdk.net/share/classes/jdk/net/ExtendedSocketOptions.java +++ b/src/jdk.net/share/classes/jdk/net/ExtendedSocketOptions.java @@ -206,7 +206,7 @@ if (option == SO_FLOW_SLA) { assert flowSupported; - SocketFlow flow = checkValueType(value, option.type()); + SocketFlow flow = checkValueType(value, SocketFlow.class); setFlowOption(fd, flow); } else if (option == TCP_QUICKACK) { setQuickAckOption(fd, (boolean) value); @@ -254,7 +254,7 @@ } @SuppressWarnings("unchecked") - private static <T> T checkValueType(Object value, Class<?> type) { + private static <T> T checkValueType(Object value, Class<T> type) { if (!type.isAssignableFrom(value.getClass())) { String s = "Found: " + value.getClass() + ", Expected: " + type; throw new IllegalArgumentException(s); -Chris.