java check if generic type implements interface