Yes! Thanks chris, that looks better to me
(and less mysterious) :-)
best regards,
-- daniel
On 02/10/2018 09:11, Chris Hegarty wrote:
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.