@@ -62,11 +62,11 @@ public final class ClassUtils {
6262 * @return The <code>Class</code> reference if found or <code>null</code> otherwise.
6363 */
6464 @ Nullable
65- @ SuppressWarnings ("WeakerAccess" )
66- public static Class <? > locateClass (final String className , final boolean fullscan , @ Nullable final ClassLoader classLoader ) {
65+ @ SuppressWarnings ({ "WeakerAccess" , "unchecked" } )
66+ public static < T > Class <T > locateClass (final String className , final boolean fullscan , @ Nullable final ClassLoader classLoader ) {
6767 final String cacheKey = className + fullscan ;
6868 if (CLASS_CACHE .containsKey (cacheKey )) {
69- return CLASS_CACHE .get (cacheKey );
69+ return ( Class < T >) CLASS_CACHE .get (cacheKey );
7070 }
7171 final Class <?> _class ;
7272 if (fullscan ) {
@@ -76,15 +76,15 @@ public static Class<?> locateClass(final String className, final boolean fullsca
7676 _class = locateClass (className , "java.lang" , classLoader );
7777 }
7878 CLASS_CACHE .put (cacheKey , _class );
79- return _class ;
79+ return ( Class < T >) _class ;
8080 }
8181
8282 @ Nullable
83- @ SuppressWarnings ("WeakerAccess" )
84- public static Class <? > locateClass (final String className , @ Nullable final String inPackage , @ Nullable final ClassLoader classLoader ) {
83+ @ SuppressWarnings ({ "WeakerAccess" , "unchecked" } )
84+ public static < T > Class <T > locateClass (final String className , @ Nullable final String inPackage , @ Nullable final ClassLoader classLoader ) {
8585 final String cacheKey = className + inPackage ;
8686 if (CLASS_CACHE .containsKey (cacheKey )) {
87- return CLASS_CACHE .get (cacheKey );
87+ return ( Class < T >) CLASS_CACHE .get (cacheKey );
8888 }
8989
9090 Class <?> _class = locateClass (className , classLoader );
@@ -94,7 +94,7 @@ public static Class<?> locateClass(final String className, @Nullable final Strin
9494 }
9595
9696 CLASS_CACHE .put (cacheKey , _class );
97- return _class ;
97+ return ( Class < T >) _class ;
9898 }
9999
100100 /**
@@ -105,9 +105,9 @@ public static Class<?> locateClass(final String className, @Nullable final Strin
105105 * @param classLoader Optional user-provided classloader.
106106 * @return The {@code Class} object found from cache or VM.
107107 */
108- @ SuppressWarnings ("WeakerAccess" )
108+ @ SuppressWarnings ({ "WeakerAccess" , "unchecked" } )
109109 @ Nullable
110- public static Class <? > locateClass (final String fullClassName , @ Nullable final ClassLoader classLoader ) {
110+ public static < T > Class <T > locateClass (final String fullClassName , @ Nullable final ClassLoader classLoader ) {
111111 try {
112112 Class <?> _class = null ;
113113 if (classLoader != null ) {
@@ -116,7 +116,7 @@ public static Class<?> locateClass(final String fullClassName, @Nullable final C
116116 if (_class == null ) {
117117 _class = Class .forName (fullClassName );
118118 }
119- return _class ;
119+ return ( Class < T >) _class ;
120120 } catch (final ClassNotFoundException e ) {
121121 return null ;
122122 }
0 commit comments