### Question:
ClassUtils { public static List<String> scanPackage(String packageName) { return scanPackage(packageName, true, true); } private  ClassUtils(); static List<String> scanPackage(String packageName); static void scanPackage(String packageName, Consumer<String> action); static List<String> scanPackage(String packageName, boolean recurse, boolean ignoreInlineClass); static void scanPackage(String packageName, final boolean recurse, final boolean ignoreInlineClass,
                                   final Consumer<String> action);  }### Answer:
@Test public void test() { List<String> list1 = ClassUtils.scanPackage("org.mx"); List<String> list2 = ClassUtils.scanPackage("org.mx", true, true); assertEquals(list1, list2); assertTrue(list1.contains("org.mx.ClassUtils")); assertTrue(list1.contains("org.mx.FileUtils")); assertTrue(list1.contains("org.mx.TypeUtils")); assertTrue(list1.contains("org.mx.RandomUtils")); assertTrue(list1.contains("org.mx.config.SystemConfig")); assertTrue(list1.contains("org.mx.error.UserInterfaceError")); List<String> list3 = ClassUtils.scanPackage("org.mx", true, false); assertTrue(list3.contains("org.mx.ClassUtils")); assertTrue(list3.contains("org.mx.FileUtils")); assertTrue(list3.contains("org.mx.TypeUtils$Radix")); assertTrue(list3.contains("org.mx.RandomUtils")); assertTrue(list3.contains("org.mx.config.SystemConfig")); assertTrue(list3.contains("org.mx.rate.GeneralTopNRate$ValueType")); assertTrue(list3.contains("org.mx.rate.FloatTopNRate")); assertTrue(list3.contains("org.mx.error.UserInterfaceError")); List<String> list4 = ClassUtils.scanPackage("org.mx", false, true); assertTrue(list4.contains("org.mx.ClassUtils")); assertTrue(list4.contains("org.mx.FileUtils")); assertTrue(list4.contains("org.mx.TypeUtils")); assertTrue(list4.contains("org.mx.RandomUtils")); assertFalse(list4.contains("org.mx.config.SystemConfig")); assertFalse(list4.contains("org.mx.error.UserInterfaceError")); }