public static boolean isResolved(Type t) { return new TypeSwitch<Boolean>() { @Override public Boolean caseClass(Class classType) { return true; } @Override public Boolean caseGenericArrayType(GenericArrayType genericArrayType) { return isResolved( genericArrayType.getGenericComponentType() ); } @Override public Boolean caseParameterizedType(ParameterizedType parameterizedType) { Type[] typeArgs = parameterizedType.getActualTypeArguments(); for ( Type arg : typeArgs ) { if ( !isResolved( arg ) ) { return false; } } return isResolved( parameterizedType.getRawType() ); } @Override public Boolean caseTypeVariable(TypeVariable typeVariable) { return false; } @Override public Boolean caseWildcardType(WildcardType wildcardType) { return areResolved( wildcardType.getUpperBounds() ) && areResolved( wildcardType.getLowerBounds() ); } }.doSwitch( t ); }
public static boolean isResolved(Type t) { return new TypeSwitch<Boolean>() { @Override public Boolean caseClass(Class classType) { return true; } @Override public Boolean caseGenericArrayType(GenericArrayType genericArrayType) { return isResolved( genericArrayType.getGenericComponentType() ); } @Override public Boolean caseParameterizedType(ParameterizedType parameterizedType) { Type[] typeArgs = parameterizedType.getActualTypeArguments(); for ( Type arg : typeArgs ) { if ( !isResolved( arg ) ) { return false; } } return isResolved( parameterizedType.getRawType() ); } @Override public Boolean caseTypeVariable(TypeVariable typeVariable) { return false; } @Override public Boolean caseWildcardType(WildcardType wildcardType) { return areResolved( wildcardType.getUpperBounds() ) && areResolved( wildcardType.getLowerBounds() ); } }.doSwitch( t ); }
public static boolean isResolved(Type t) { return new TypeSwitch<Boolean>() { @Override public Boolean caseClass(Class classType) { return true; } @Override public Boolean caseGenericArrayType(GenericArrayType genericArrayType) { return isResolved( genericArrayType.getGenericComponentType() ); } @Override public Boolean caseParameterizedType(ParameterizedType parameterizedType) { Type[] typeArgs = parameterizedType.getActualTypeArguments(); for ( Type arg : typeArgs ) { if ( !isResolved( arg ) ) { return false; } } return isResolved( parameterizedType.getRawType() ); } @Override public Boolean caseTypeVariable(TypeVariable typeVariable) { return false; } @Override public Boolean caseWildcardType(WildcardType wildcardType) { return areResolved( wildcardType.getUpperBounds() ) && areResolved( wildcardType.getLowerBounds() ); } }.doSwitch( t ); }