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

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

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

TypeToken.where介绍

[英]Returns a new TypeToken where type variables represented by typeParam are substituted by typeArg. For example, it can be used to construct Map for any K and V type:

static  TypeToken> mapOf(return new TypeToken>() {} 
.where(new TypeParameter() {}, keyType) 
.where(new TypeParameter() {}, valueType); 
} 
}

[中]返回一个新的TypeToken,其中typeParam表示的类型变量被typeArg替换。例如,它可以用于为任何K和V类型构建映射:

static  TypeToken> mapOf(return new TypeToken>() {} 
.where(new TypeParameter() {}, keyType) 
.where(new TypeParameter() {}, valueType); 
} 
}

代码示例

代码示例来源:origin: google/guava

/**
 * Returns a new {@code TypeToken} where type variables represented by {@code typeParam} are
 * substituted by {@code typeArg}. For example, it can be used to construct {@code Map<K, V>} for
 * any {@code K} and {@code V} type:
 *
 * <pre>{@code
 * static <K, V> TypeToken<Map<K, V>> mapOf(
 *     Class<K> keyType, Class<V> valueType) {
 *   return new TypeToken<Map<K, V>>() {}
 *       .where(new TypeParameter<K>() {}, keyType)
 *       .where(new TypeParameter<V>() {}, valueType);
 * }
 * }</pre>
 *
 * @param <X> The parameter type
 * @param typeParam the parameter type variable
 * @param typeArg the actual type to substitute
 */
public final <X> TypeToken<T> where(TypeParameter<X> typeParam, Class<X> typeArg) {
 return where(typeParam, of(typeArg));
}

代码示例来源:origin: google/guava

private static <T, X> TypeToken<T> substitute(TypeToken<T> type, Class<X> arg) {
 return type.where(new TypeParameter<X>() {}, arg);
}

代码示例来源:origin: google/j2objc

/**
 * Returns a new {@code TypeToken} where type variables represented by {@code typeParam} are
 * substituted by {@code typeArg}. For example, it can be used to construct {@code Map<K, V>} for
 * any {@code K} and {@code V} type:
 *
 * <pre>{@code
 * static <K, V> TypeToken<Map<K, V>> mapOf(
 *     Class<K> keyType, Class<V> valueType) {
 *   return new TypeToken<Map<K, V>>() {}
 *       .where(new TypeParameter<K>() {}, keyType)
 *       .where(new TypeParameter<V>() {}, valueType);
 * }
 * }</pre>
 *
 * @param <X> The parameter type
 * @param typeParam the parameter type variable
 * @param typeArg the actual type to substitute
 */
public final <X> TypeToken<T> where(TypeParameter<X> typeParam, Class<X> typeArg) {
 return where(typeParam, of(typeArg));
}

代码示例来源:origin: wildfly/wildfly

/**
 * Returns a new {@code TypeToken} where type variables represented by {@code typeParam} are
 * substituted by {@code typeArg}. For example, it can be used to construct {@code Map<K, V>} for
 * any {@code K} and {@code V} type:
 *
 * <pre>{@code
 * static <K, V> TypeToken<Map<K, V>> mapOf(
 *     Class<K> keyType, Class<V> valueType) {
 *   return new TypeToken<Map<K, V>>() {}
 *       .where(new TypeParameter<K>() {}, keyType)
 *       .where(new TypeParameter<V>() {}, valueType);
 * }
 * }</pre>
 *
 * @param <X> The parameter type
 * @param typeParam the parameter type variable
 * @param typeArg the actual type to substitute
 */
public final <X> TypeToken<T> where(TypeParameter<X> typeParam, Class<X> typeArg) {
 return where(typeParam, of(typeArg));
}

代码示例来源:origin: google/guava

private static <K, V> TypeToken<Map<K, V>> mapOf(Class<K> keyType, Class<V> valueType) {
 return new TypeToken<Map<K, V>>() {}.where(new TypeParameter<K>() {}, keyType)
   .where(new TypeParameter<V>() {}, valueType);
}

代码示例来源:origin: google/guava

@SuppressWarnings("unchecked") // To construct TypeToken<T> with TypeToken.of()
public <T> void testWhere_circleRejected() {
 TypeToken<List<T>> type = new TypeToken<List<T>>() {};
 try {
  type.where(
    new TypeParameter<T>() {},
    (TypeToken<T>) TypeToken.of(new TypeCapture<T>() {}.capture()));
  fail();
 } catch (IllegalArgumentException expected) {
 }
}

代码示例来源:origin: com.datastax.cassandra/cassandra-driver-core

/**
  * Create a {@link TypeToken} that represents a {@link Map} whose keys and values are of the given
  * key and value types.
  *
  * @param keyType The map key type.
  * @param valueType The map value type
  * @param <K> The map key type.
  * @param <V> The map value type
  * @return A {@link TypeToken} that represents a {@link Map} whose keys and values are of the
  *     given key and value types
  */
 public static <K, V> TypeToken<Map<K, V>> mapOf(TypeToken<K> keyType, TypeToken<V> valueType) {
  // @formatter:off
  return new TypeToken<Map<K, V>>() {}.where(new TypeParameter<K>() {}, keyType)
    .where(new TypeParameter<V>() {}, valueType);
  // @formatter:on
 }
}

代码示例来源:origin: com.datastax.cassandra/cassandra-driver-core

/**
 * Create a {@link TypeToken} that represents a {@link Map} whose keys and values are of the given
 * key and value types.
 *
 * @param keyType The map key type.
 * @param valueType The map value type
 * @param <K> The map key type.
 * @param <V> The map value type
 * @return A {@link TypeToken} that represents a {@link Map} whose keys and values are of the
 *     given key and value types
 */
public static <K, V> TypeToken<Map<K, V>> mapOf(Class<K> keyType, Class<V> valueType) {
 // @formatter:off
 return new TypeToken<Map<K, V>>() {}.where(new TypeParameter<K>() {}, keyType)
   .where(new TypeParameter<V>() {}, valueType);
 // @formatter:on
}

代码示例来源:origin: org.zalando/riptide-core

@SuppressWarnings("serial")
public static <T> TypeToken<List<T>> listOf(final TypeToken<T> entityType) {
  final TypeToken<List<T>> listType = new TypeToken<List<T>>() {
    // nothing to implement!
  };
  final TypeParameter<T> elementType = new TypeParameter<T>() {
    // nothing to implement!
  };
  return listType.where(elementType, entityType);
}

代码示例来源:origin: jclouds/legacy-jclouds

public static <S, A> TypeToken<org.jclouds.rest.RestContext<S, A>> contextToken(TypeToken<S> apiToken, TypeToken<A> asyncApiToken) {
 return new TypeToken<org.jclouds.rest.RestContext<S, A>>() {
   private static final long serialVersionUID = 1L;
 }.where(new TypeParameter<S>() {
 }, apiToken).where(new TypeParameter<A>() {
 }, asyncApiToken);
}

代码示例来源:origin: zolyfarkas/spf4j

private static <K, V> TypeToken<Map<K, V>> mapToken(final TypeToken<K> keyToken,
    final TypeToken<V> valueToken) {
 return new TypeToken<Map<K, V>>() { }
  .where(new TypeParameter<K>() { }, keyToken)
  .where(new TypeParameter<V>() { }, valueToken);
}

代码示例来源:origin: com.google.caliper/caliper

private static <K, V> TypeToken<Map<K, Set<V>>> getMapOfSetsToken(
  TypeToken<SetMultimap<K, V>> from) {
 ParameterizedType rawType = (ParameterizedType) from.getSupertype(SetMultimap.class).getType();
 @SuppressWarnings("unchecked") // key type is K
 TypeToken<K> keyType = (TypeToken<K>) TypeToken.of(rawType.getActualTypeArguments()[0]);
 @SuppressWarnings("unchecked") // value type is V
 TypeToken<V> valueType = (TypeToken<V>) TypeToken.of(rawType.getActualTypeArguments()[1]);
 return new TypeToken<Map<K, Set<V>>>() {}
   .where(new TypeParameter<K>() {}, keyType)
   .where(new TypeParameter<V>() {}, valueType);
}

代码示例来源:origin: org.jsimpledb/jsimpledb-main

@SuppressWarnings("serial")
private <T, V> void addChangeParameterTypes(List<TypeToken<?>> types, Class<T> targetType, TypeToken<V> fieldType) {
  types.add(new TypeToken<SimpleFieldChange<T, V>>() { }
   .where(new TypeParameter<T>() { }, targetType)
   .where(new TypeParameter<V>() { }, fieldType.wrap()));
}

代码示例来源:origin: io.airlift/json

public static <K, V> JsonCodec<Map<K, V>> mapJsonCodec(Class<K> keyType, Class<V> valueType)
{
  requireNonNull(keyType, "keyType is null");
  requireNonNull(valueType, "valueType is null");
  Type mapType = new TypeToken<Map<K, V>>() {}
      .where(new TypeParameter<K>() {}, keyType)
      .where(new TypeParameter<V>() {}, valueType)
      .getType();
  return new JsonCodec<>(OBJECT_MAPPER_SUPPLIER.get(), mapType);
}

代码示例来源:origin: io.airlift/json

public static <K, V> JsonCodec<Map<K, V>> mapJsonCodec(Class<K> keyType, JsonCodec<V> valueType)
{
  requireNonNull(keyType, "keyType is null");
  requireNonNull(valueType, "valueType is null");
  Type mapType = new TypeToken<Map<K, V>>() {}
      .where(new TypeParameter<K>() {}, keyType)
      .where(new TypeParameter<V>() {}, valueType.getTypeToken())
      .getType();
  return new JsonCodec<>(OBJECT_MAPPER_SUPPLIER.get(), mapType);
}

代码示例来源:origin: airlift/airlift

public static <K, V> JsonCodec<Map<K, V>> mapJsonCodec(Class<K> keyType, JsonCodec<V> valueType)
{
  requireNonNull(keyType, "keyType is null");
  requireNonNull(valueType, "valueType is null");
  Type mapType = new TypeToken<Map<K, V>>() {}
      .where(new TypeParameter<K>() {}, keyType)
      .where(new TypeParameter<V>() {}, valueType.getTypeToken())
      .getType();
  return new JsonCodec<>(OBJECT_MAPPER_SUPPLIER.get(), mapType);
}

代码示例来源:origin: com.gitee.l0km/common-swift-metadata

public static <K, V> ThriftType map(ThriftType keyType, ThriftType valueType)
{
  checkNotNull(keyType, "keyType is null");
  checkNotNull(valueType, "valueType is null");
  @SuppressWarnings("serial")
  Type javaType = new TypeToken<Map<K, V>>(){}
      .where(new TypeParameter<K>(){}, (TypeToken<K>) TypeToken.of(keyType.getJavaType()))
      .where(new TypeParameter<V>(){}, (TypeToken<V>) TypeToken.of(valueType.getJavaType()))
      .getType();
  return new ThriftType(ThriftProtocolType.MAP, javaType, keyType, valueType);
}

代码示例来源:origin: io.airlift/json

public <K, V> JsonCodec<Map<K, V>> mapJsonCodec(Class<K> keyType, Class<V> valueType)
{
  requireNonNull(keyType, "keyType is null");
  requireNonNull(valueType, "valueType is null");
  Type mapType = new TypeToken<Map<K, V>>() {}
      .where(new TypeParameter<K>() {}, keyType)
      .where(new TypeParameter<V>() {}, valueType)
      .getType();
  return new JsonCodec<>(createObjectMapper(), mapType);
}

代码示例来源:origin: io.permazen/permazen-coreapi

@SuppressWarnings("serial")
public Tuple4FieldType(FieldType<V1> value1Type, FieldType<V2> value2Type, FieldType<V3> value3Type, FieldType<V4> value4Type) {
  super(new TypeToken<Tuple4<V1, V2, V3, V4>>() { }
    .where(new TypeParameter<V1>() { }, value1Type.getTypeToken().wrap())
    .where(new TypeParameter<V2>() { }, value2Type.getTypeToken().wrap())
    .where(new TypeParameter<V3>() { }, value3Type.getTypeToken().wrap())
    .where(new TypeParameter<V4>() { }, value4Type.getTypeToken().wrap()),
   value1Type, value2Type, value3Type, value4Type);
}

代码示例来源:origin: com.google.guava/guava-tests

@SuppressWarnings("unchecked") // To construct TypeToken<T> with TypeToken.of()
public <T> void testWhere_circleRejected() {
 TypeToken<List<T>> type = new TypeToken<List<T>>() {};
 try {
  type.where(new TypeParameter<T>() {},
    (TypeToken<T>) TypeToken.of(new TypeCapture<T>() {}.capture()));
  fail();
 } catch (IllegalArgumentException expected) {}
}

相关文章

微信公众号

最新文章

更多

TypeToken类方法