public static List<TypeName> getTypeArguments(TypeElement element) {
		final List<TypeName> result = new ArrayList<>();

		if (element.getKind() == ElementKind.CLASS) {
			if (element.getSuperclass() instanceof DeclaredType) {
				result.addAll(convert(((DeclaredType) element.getSuperclass()).getTypeArguments()));
			}
		} else if (element.getKind() == ElementKind.INTERFACE) {

			List<? extends TypeMirror> interfaces = element.getInterfaces();

			for (TypeMirror item : interfaces) {
				item.accept(new SimpleTypeVisitor7<Void, Void>() {

					@Override
					public Void visitDeclared(DeclaredType t, Void p) {
						result.addAll(convert(t.getTypeArguments()));
						return null;
					}

				}, null);

			}
		}

		return result;
	}
public static List < TypeName > getTypeArguments ( TypeElement element ) { final List < TypeName > result = new ArrayList < > ( ) ; if ( element . getKind ( ) == ElementKind . CLASS ) { if ( element . getSuperclass ( ) instanceof DeclaredType ) { result . addAll ( convert ( ( ( DeclaredType ) element . getSuperclass ( ) ) . getTypeArguments ( ) ) ) ; } } else if ( element . getKind ( ) == ElementKind . INTERFACE ) { List < ? extends TypeMirror > interfaces = element . getInterfaces ( ) ; for ( TypeMirror item : interfaces ) { item . accept ( new SimpleTypeVisitor7 < Void , Void > ( ) { @ Override public Void visitDeclared ( DeclaredType t , Void p ) { result . addAll ( convert ( t . getTypeArguments ( ) ) ) ; return null ; } } , null ) ; } } return result ; }
<p>
Retrieve parametrized type of element (from its parent).
</p>

@param element
the element
@return list of typemirror or empty list