public static boolean hasAtLeastOneFieldOrMethod(ClassNode node, String... types) {
		Set<String> typesSet = new HashSet<>(Arrays.asList(types));
		for (FieldNode field : node.getFields()) {
			if (typesSet.contains(field.getType().getName())) {
				return true;
			}
		}
		for (MethodNode method : node.getMethods()) {
			if (typesSet.contains(method.getReturnType().getName())) {
				return true;
			}
		}
		return false;
	}
public static boolean hasAtLeastOneFieldOrMethod ( ClassNode node , String ... types ) { Set < String > typesSet = new HashSet < > ( Arrays . asList ( types ) ) ; for ( FieldNode field : node . getFields ( ) ) { if ( typesSet . contains ( field . getType ( ) . getName ( ) ) ) { return true ; } } for ( MethodNode method : node . getMethods ( ) ) { if ( typesSet . contains ( method . getReturnType ( ) . getName ( ) ) ) { return true ; } } return false ; }
Determine if a {@link ClassNode} has one or more fields of the specified types or
method returning one or more of the specified types. N.B. the type names are not
normally fully qualified.
@param node the class to examine
@param types the types to look for
@return {@code true} if at least one of the types is found, otherwise {@code false}