com.google.common.reflect.TypeToken.method()方法的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(8.5k)|赞(0)|评价(0)|浏览(147)

本文整理了Java中com.google.common.reflect.TypeToken.method()方法的一些代码示例,展示了TypeToken.method()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。TypeToken.method()方法的具体详情如下:
包路径:com.google.common.reflect.TypeToken
类名称:TypeToken
方法名:method

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()));
}

相关文章

微信公众号

最新文章

更多

TypeToken类方法