由于公司内部提供某SDK的开发同学不太专业,导致其中有些类没有声明package,因此无法通过import导入类。所以只能通过反射来加载类,代码示例如下:
Class clazz = Class.forName("类名");
Method method= clazz.getMethod("需要调用的方法名", String.class); // 方法名,参数类型
Object result = method.invoke(null, 参数值); // static方法,不需要newInstance,否则,请clazz.newInstance()之后再调用method.invoke
上面的示例以无package类的static方法调用为例。如果是非static方法,需要在method.invoke中的第一个参数传入clazz.newInstance()。