Returns the {@link Invokable} for {@code constructor}, which must be a member of {@code T}. @since 14.0
(Constructor<?> constructor)
| 635 | * @since 14.0 |
| 636 | */ |
| 637 | public final Invokable<T, T> constructor(Constructor<?> constructor) { |
| 638 | checkArgument( |
| 639 | constructor.getDeclaringClass() == getRawType(), |
| 640 | "%s not declared by %s", |
| 641 | constructor, |
| 642 | getRawType()); |
| 643 | return new Invokable.ConstructorInvokable<T>(constructor) { |
| 644 | @Override |
| 645 | Type getGenericReturnType() { |
| 646 | return getCovariantTypeResolver().resolveType(super.getGenericReturnType()); |
| 647 | } |
| 648 | |
| 649 | @Override |
| 650 | Type[] getGenericParameterTypes() { |
| 651 | return getInvariantTypeResolver().resolveTypesInPlace(super.getGenericParameterTypes()); |
| 652 | } |
| 653 | |
| 654 | @Override |
| 655 | Type[] getGenericExceptionTypes() { |
| 656 | return getCovariantTypeResolver().resolveTypesInPlace(super.getGenericExceptionTypes()); |
| 657 | } |
| 658 | |
| 659 | @Override |
| 660 | public TypeToken<T> getOwnerType() { |
| 661 | return TypeToken.this; |
| 662 | } |
| 663 | |
| 664 | @Override |
| 665 | public String toString() { |
| 666 | return getOwnerType() + "(" + Joiner.on(", ").join(getGenericParameterTypes()) + ")"; |
| 667 | } |
| 668 | }; |
| 669 | } |
| 670 | |
| 671 | /** |
| 672 | * The set of interfaces and classes that {@code T} is or is a subtype of. {@link Object} is not |
nothing calls this directly
no test coverage detected