Class Reflection
java.lang.Object
com.google.common.reflect.Reflection
Static utilities relating to Java reflection.
- Since:
- 12.0
-
Method Summary
Modifier and TypeMethodDescriptionstatic StringgetPackageName(Class<?> clazz) Returns the package name ofclazzaccording to the Java Language Specification (section 6.7).static StringgetPackageName(String classFullName) Returns the package name ofclassFullNameaccording to the Java Language Specification (section 6.7).static voidinitialize(Class<?>... classes) Ensures that the given classes are initialized, as described in JLS Section 12.4.2.static <T> TnewProxy(Class<T> interfaceType, InvocationHandler handler) Returns a proxy instance that implementsinterfaceTypeby dispatching method invocations tohandler.
-
Method Details
-
getPackageName
Returns the package name ofclazzaccording to the Java Language Specification (section 6.7). UnlikeClass.getPackage(), this method only parses the class name, without attempting to define thePackageand hence load files. -
getPackageName
Returns the package name ofclassFullNameaccording to the Java Language Specification (section 6.7). UnlikeClass.getPackage(), this method only parses the class name, without attempting to define thePackageand hence load files. -
initialize
Ensures that the given classes are initialized, as described in JLS Section 12.4.2.WARNING: Normally it's a smell if a class needs to be explicitly initialized, because static state hurts system maintainability and testability. In cases when you have no choice while interoperating with a legacy framework, this method helps to keep the code less ugly.
- Throws:
ExceptionInInitializerError- if an exception is thrown during initialization of a class
-
newProxy
Returns a proxy instance that implementsinterfaceTypeby dispatching method invocations tohandler. The class loader ofinterfaceTypewill be used to define the proxy class. To implement multiple interfaces or specify a class loader, useProxy.newProxyInstance(ClassLoader, Class[], InvocationHandler).- Throws:
IllegalArgumentException- ifinterfaceTypedoes not specify the type of a Java interface
-