diff --git a/src/main/java/uk/ac/rhul/cs/javatester/CodeTester.java b/src/main/java/uk/ac/rhul/cs/javatester/CodeTester.java index 53f9b164389e1cf53ba6ab1a85ab338465125619..d6968a999a3e2e6d1e509c4d36989daa31247ef1 100644 --- a/src/main/java/uk/ac/rhul/cs/javatester/CodeTester.java +++ b/src/main/java/uk/ac/rhul/cs/javatester/CodeTester.java @@ -255,9 +255,11 @@ public class CodeTester { String className, Object... params) throws BaseTester.FailedTestException { - Class<?>[] parameterTypes - = Stream.of(params).map(p -> p.getClass()) - .toArray(Class<?>[]::new); + + Class<?>[] parameterTypes = Stream.of(params).map( + p -> p != null ? p.getClass() : NullType.class + ).toArray(Class<?>[]::new); + try { Class<?> klass = loadClass(className); Constructor<?> constructor @@ -637,7 +639,10 @@ public class CodeTester { * dependencies.. */ private boolean isAssignable(Class<?> k1, Class<?> k2) { - return boxClass(k1).isAssignableFrom(boxClass(k2)); + if (k2 == NullType.class) + return true; + else + return boxClass(k1).isAssignableFrom(boxClass(k2)); } /** @@ -994,4 +999,9 @@ public class CodeTester { else return logIdealizer.apply(output); } + + /** + * A class to represent a null argument which can be any object type + */ + private class NullType { } }