本文整理了Java中com.google.common.reflect.TypeToken.method()
方法的一些代码示例,展示了TypeToken.method()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。TypeToken.method()
方法的具体详情如下:
包路径:com.google.common.reflect.TypeToken
类名称:TypeToken
方法名:method
[英]Returns the Invokable for method, which must be a member of T.
[中]返回可调用的for方法,该方法必须是T的成员。
代码示例来源:origin: google/guava
@Override
Object interfaceMethodCalled(Class<?> interfaceType, Method method) {
return getDummyValue(TypeToken.of(interfaceType).method(method).getReturnType());
}
};
代码示例来源:origin: google/guava
private static Invokable<?, ?> invokable(@Nullable Object instance, Method method) {
if (instance == null) {
return Invokable.from(method);
} else {
return TypeToken.of(instance.getClass()).method(method);
}
}
代码示例来源:origin: google/guava
@Override
protected Object handleInvocation(Object proxy, Method method, Object[] args) {
Invokable<?, ?> invokable = interfaceType.method(method);
ImmutableList<Parameter> params = invokable.getParameters();
for (int i = 0; i < args.length; i++) {
Parameter param = params.get(i);
if (!isNullable(param)) {
checkNotNull(args[i]);
}
}
return dummyReturnValue(interfaceType.resolveType(method.getGenericReturnType()));
}
代码示例来源:origin: google/guava
public void testMethod_notDeclaredByType() throws NoSuchMethodException {
Method sizeMethod = Map.class.getMethod("size");
try {
TypeToken.of(List.class).method(sizeMethod);
fail();
} catch (IllegalArgumentException expected) {
}
}
代码示例来源:origin: google/guava
@Override
public Object handleInvocation(Object proxy, Method method, Object[] args) {
// Crude, but acceptable until we can use Java 8. Other
// methods have default implementations, and it is hard to
// distinguish.
if (method.getName().equals(JUF_METHODS.get(typeName))) {
return getDefaultValue(type.method(method).getReturnType());
}
throw new IllegalStateException("Unexpected " + method + " invoked on " + proxy);
}
});
代码示例来源:origin: google/guava
List<Invokable<?, ? extends T>> factories = Lists.newArrayList();
for (Method method : type.getRawType().getDeclaredMethods()) {
Invokable<?, ?> invokable = type.method(method);
if (!invokable.isPrivate()
&& !invokable.isSynthetic()
代码示例来源:origin: google/guava
public void testMethod_declaredBySuperclass() throws Exception {
Method toStringMethod = Object.class.getMethod("toString");
ImmutableList<String> list = ImmutableList.of("foo");
assertEquals(list.toString(), TypeToken.of(List.class).method(toStringMethod).invoke(list));
}
代码示例来源:origin: google/guava
private static <T> void callAllPublicMethods(TypeToken<T> type, T object)
throws InvocationTargetException {
for (Method method : type.getRawType().getMethods()) {
if ((method.getModifiers() & STATIC) != 0) {
continue;
}
ImmutableList<Parameter> parameters = type.method(method).getParameters();
Object[] args = new Object[parameters.size()];
for (int i = 0; i < parameters.size(); i++) {
args[i] = getDefaultValue(parameters.get(i).getType());
}
try {
try {
method.invoke(object, args);
} catch (InvocationTargetException ex) {
try {
throw ex.getCause();
} catch (UnsupportedOperationException unsupported) {
// this is a legit exception
}
}
} catch (Throwable cause) {
throw new InvocationTargetException(
cause, method + " with args: " + Arrays.toString(args));
}
}
}
}
代码示例来源:origin: google/guava
public void testMethod_getOwnerType() throws NoSuchMethodException {
Method sizeMethod = List.class.getMethod("size");
assertEquals(
TypeToken.of(List.class), TypeToken.of(List.class).method(sizeMethod).getOwnerType());
assertEquals(
new TypeToken<List<String>>() {},
new TypeToken<List<String>>() {}.method(sizeMethod).getOwnerType());
}
代码示例来源:origin: google/guava
public void testWildcardCaptured_wildcardWithExplicitBound() throws Exception {
TypeToken<Holder<? extends Number>> type = new TypeToken<Holder<? extends Number>>() {};
ImmutableList<Parameter> parameters =
type.method(Holder.class.getDeclaredMethod("setList", List.class)).getParameters();
assertThat(parameters).hasSize(1);
TypeToken<?> parameterType = parameters.get(0).getType();
Type[] typeArgs = ((ParameterizedType) parameterType.getType()).getActualTypeArguments();
assertThat(typeArgs).asList().hasSize(1);
TypeVariable<?> captured = (TypeVariable<?>) typeArgs[0];
assertThat(captured.getBounds()).asList().containsExactly(Number.class);
assertThat(new TypeToken<List<? extends Number>>() {}.isSupertypeOf(parameterType)).isTrue();
}
代码示例来源:origin: google/guava
public void testWildcardCaptured_methodParameter_upperBound() throws Exception {
TypeToken<Holder<?>> type = new TypeToken<Holder<?>>() {};
ImmutableList<Parameter> parameters =
type.method(Holder.class.getDeclaredMethod("setList", List.class)).getParameters();
assertThat(parameters).hasSize(1);
TypeToken<?> parameterType = parameters.get(0).getType();
assertEquals(List.class, parameterType.getRawType());
assertFalse(
parameterType.getType().toString(),
parameterType.isSupertypeOf(new TypeToken<List<Integer>>() {}));
}
代码示例来源:origin: google/guava
public void testWildcardCaptured_wildcardWithImplicitBound() throws Exception {
TypeToken<Holder<?>> type = new TypeToken<Holder<?>>() {};
ImmutableList<Parameter> parameters =
type.method(Holder.class.getDeclaredMethod("setList", List.class)).getParameters();
assertThat(parameters).hasSize(1);
TypeToken<?> parameterType = parameters.get(0).getType();
Type[] typeArgs = ((ParameterizedType) parameterType.getType()).getActualTypeArguments();
assertThat(typeArgs).asList().hasSize(1);
TypeVariable<?> captured = (TypeVariable<?>) typeArgs[0];
assertThat(captured.getBounds()).asList().containsExactly(Object.class);
assertThat(new TypeToken<List<?>>() {}.isSupertypeOf(parameterType)).isTrue();
}
代码示例来源:origin: com.google.guava/guava-testlib
@Override
Object interfaceMethodCalled(Class<?> interfaceType, Method method) {
return getDummyValue(TypeToken.of(interfaceType).method(method).getReturnType());
}
};
代码示例来源:origin: joel-costigliola/assertj-assertions-generator
public GetterDescription(String propertyName, TypeToken<?> owningType, Method method) {
super(propertyName, method, Visibility.PUBLIC, owningType.method(method).getReturnType(), owningType);
this.invokable = owningType.method(method);
this.exceptions = invokable.getExceptionTypes();
}
代码示例来源:origin: com.talanlabs/component-bean
private void addPropertyName(Method method, ComponentBeanMethod bm, String propertyName, boolean computed, boolean defaulted) {
IComponent.EqualsKey a = method.getAnnotation(IComponent.EqualsKey.class);
boolean equalsKey = a != null;
TypeToken<?> typeToken = componentTypeToken.method(method).getReturnType();
PropertyDescriptor cf = new PropertyDescriptor(method, propertyName, typeToken, typeToken.getRawType(), equalsKey, computed, defaulted);
componentFieldMap.put(propertyName, cf);
propertyDescriptors.add(cf);
propertyNames.add(propertyName);
if (equalsKey) {
equalsKeyPropertyNames.add(propertyName);
nullEqualsKeyMap.put(propertyName, a.nullEquals());
}
}
代码示例来源:origin: com.google.guava/guava-testlib
private static Invokable<?, ?> invokable(@Nullable Object instance, Method method) {
if (instance == null) {
return Invokable.from(method);
} else {
return TypeToken.of(instance.getClass()).method(method);
}
}
代码示例来源:origin: com.google.guava/guava-testlib
@Override
protected Object handleInvocation(Object proxy, Method method, Object[] args) {
Invokable<?, ?> invokable = interfaceType.method(method);
ImmutableList<Parameter> params = invokable.getParameters();
for (int i = 0; i < args.length; i++) {
Parameter param = params.get(i);
if (!isNullable(param)) {
checkNotNull(args[i]);
}
}
return dummyReturnValue(interfaceType.resolveType(method.getGenericReturnType()));
}
代码示例来源:origin: Netflix/ndbench
private static Invokable<?, ?> invokable(@Nullable final Object instance, final Method method) {
if (instance == null) {
return Invokable.from(method);
} else {
return TypeToken.of(instance.getClass()).method(method);
}
}
代码示例来源:origin: com.google.guava/guava-tests
public void testMethod_notDeclaredByType() throws NoSuchMethodException {
Method sizeMethod = Map.class.getMethod("size");
try {
TypeToken.of(List.class).method(sizeMethod);
fail();
} catch (IllegalArgumentException expected) {}
}
代码示例来源:origin: Netflix/ndbench
@Override protected Object handleInvocation(
Object proxy, Method method, Object[] args) {
Invokable<?, ?> invokable = interfaceType.method(method);
ImmutableList<Parameter> params = invokable.getParameters();
for (int i = 0; i < args.length; i++) {
Parameter param = params.get(i);
if (!param.isAnnotationPresent(Nullable.class)) {
checkNotNull(args[i]);
}
}
return dummyReturnValue(interfaceType.resolveType(method.getGenericReturnType()));
}
内容来源于网络,如有侵权,请联系作者删除!