本文整理了Java中com.google.common.reflect.TypeToken.isSubtypeOf()
方法的一些代码示例,展示了TypeToken.isSubtypeOf()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。TypeToken.isSubtypeOf()
方法的具体详情如下:
包路径:com.google.common.reflect.TypeToken
类名称:TypeToken
方法名:isSubtypeOf
[英]Returns true if this type is a subtype of the given type. "Subtype" is defined according to the rules for type arguments introduced with Java generics.
[中]如果此类型是给定类型的子类型,则返回true。“Subtype”是根据Java泛型引入的the rules for type arguments定义的。
代码示例来源:origin: google/guava
boolean isSupertypeOf(Type subtype) {
TypeToken<?> type = of(subtype);
for (Type bound : bounds) {
if (type.isSubtypeOf(bound) == target) {
return target;
}
}
return !target;
}
}
代码示例来源:origin: google/guava
boolean isSubtypeOf(Type supertype) {
for (Type bound : bounds) {
if (of(bound).isSubtypeOf(supertype) == target) {
return target;
}
}
return !target;
}
代码示例来源:origin: google/guava
/**
* Returns true if this type is a supertype of the given {@code type}. "Supertype" is defined
* according to <a
* href="http://docs.oracle.com/javase/specs/jls/se8/html/jls-4.html#jls-4.5.1">the rules for type
* arguments</a> introduced with Java generics.
*
* @since 19.0
*/
public final boolean isSupertypeOf(TypeToken<?> type) {
return type.isSubtypeOf(getType());
}
代码示例来源:origin: google/guava
/**
* Returns true if this type is a supertype of the given {@code type}. "Supertype" is defined
* according to <a
* href="http://docs.oracle.com/javase/specs/jls/se8/html/jls-4.html#jls-4.5.1">the rules for type
* arguments</a> introduced with Java generics.
*
* @since 19.0
*/
public final boolean isSupertypeOf(Type type) {
return of(type).isSubtypeOf(getType());
}
代码示例来源:origin: google/guava
/**
* Returns true if this type is a subtype of the given {@code type}. "Subtype" is defined
* according to <a
* href="http://docs.oracle.com/javase/specs/jls/se8/html/jls-4.html#jls-4.5.1">the rules for type
* arguments</a> introduced with Java generics.
*
* @since 19.0
*/
public final boolean isSubtypeOf(TypeToken<?> type) {
return isSubtypeOf(type.getType());
}
代码示例来源:origin: google/guava
private boolean isOwnedBySubtypeOf(Type supertype) {
for (TypeToken<?> type : getTypes()) {
Type ownerType = type.getOwnerTypeIfPresent();
if (ownerType != null && of(ownerType).isSubtypeOf(supertype)) {
return true;
}
}
return false;
}
代码示例来源:origin: google/guava
public void testGetSubtype_toWildcardWithBounds() {
class TwoTypeArgs<K, V> {}
class StringForFirstTypeArg<V> extends TwoTypeArgs<String, V> {}
TypeToken<TwoTypeArgs<?, ? extends Number>> supertype =
new TypeToken<TwoTypeArgs<?, ? extends Number>>() {};
TypeToken<StringForFirstTypeArg<Integer>> subtype =
new TypeToken<StringForFirstTypeArg<Integer>>() {};
assertTrue(subtype.isSubtypeOf(supertype));
// TODO(benyu): This should check equality to an expected value, see discussion in cl/98674873
TypeToken<?> unused = supertype.getSubtype(subtype.getRawType());
}
代码示例来源:origin: google/guava
public void testGetSubtype_baseClassInGenericClassWithNoTypeArgs() {
class SingleGenericExtendsBase<T> implements GenericClass.Base {}
TypeToken<GenericClass.Base> supertype = new TypeToken<GenericClass.Base>() {};
TypeToken<SingleGenericExtendsBase<String>> subtype =
new TypeToken<SingleGenericExtendsBase<String>>() {};
assertTrue(subtype.isSubtypeOf(supertype));
ParameterizedType actualSubtype =
(ParameterizedType) supertype.getSubtype(subtype.getRawType()).getType();
assertEquals(SingleGenericExtendsBase.class, actualSubtype.getRawType());
assertTrue(TypeToken.of(actualSubtype).isSubtypeOf(supertype));
}
代码示例来源:origin: google/guava
public void testGetSubtype_genericSubtypeOfNonGenericType() {
TypeToken<Serializable> supertype = new TypeToken<Serializable>() {};
TypeToken<ArrayList<String>> subtype = new TypeToken<ArrayList<String>>() {};
assertTrue(subtype.isSubtypeOf(supertype));
ParameterizedType actualSubtype =
(ParameterizedType) supertype.getSubtype(subtype.getRawType()).getType();
assertEquals(ArrayList.class, actualSubtype.getRawType());
assertThat(actualSubtype.getActualTypeArguments()[0]).isInstanceOf(TypeVariable.class);
assertTrue(TypeToken.of(actualSubtype).isSubtypeOf(supertype));
}
代码示例来源:origin: google/guava
public void testGetSubtype_genericSubtypeOfGenericTypeWithFewerParameters() {
TypeToken<List<String>> supertype = new TypeToken<List<String>>() {};
TypeToken<MySpecialList<String, ?>> subtype = new TypeToken<MySpecialList<String, ?>>() {};
assertTrue(subtype.isSubtypeOf(supertype));
ParameterizedType actualSubtype =
(ParameterizedType) supertype.getSubtype(subtype.getRawType()).getType();
assertEquals(MySpecialList.class, actualSubtype.getRawType());
assertThat(actualSubtype.getActualTypeArguments()[0]).isEqualTo(String.class);
assertThat(actualSubtype.getActualTypeArguments()[1]).isInstanceOf(TypeVariable.class);
assertTrue(TypeToken.of(actualSubtype).isSubtypeOf(supertype));
}
代码示例来源:origin: google/guava
public void testSubtypeOfInnerClass_nonStaticAnonymousClass() {
TypeToken<?> supertype = new TypeToken<Mall<Outdoor>.Shop<Electronics>>() {};
Class<?> subclass = new Mall<Outdoor>().new Shop<Electronics>() {}.getClass();
assertTrue(TypeToken.of(subclass).isSubtypeOf(supertype));
}
代码示例来源:origin: google/guava
public static void testSubtypeOfStaticAnonymousClass() {
Class<?> superclass = new Mall<Outdoor>().new Shop<Electronics>() {}.getClass();
assertTrue(TypeToken.of(superclass).isSubtypeOf(superclass));
assertFalse(
TypeToken.of(new Mall<Outdoor>().new Shop<Electronics>() {}.getClass())
.isSubtypeOf(superclass));
}
代码示例来源:origin: google/guava
public void testSubtypeOfNonStaticAnonymousClass() {
Class<?> superclass = new Mall<Outdoor>().new Shop<Electronics>() {}.getClass();
assertTrue(TypeToken.of(superclass).isSubtypeOf(superclass));
assertFalse(
TypeToken.of(new Mall<Outdoor>().new Shop<Electronics>() {}.getClass())
.isSubtypeOf(superclass));
}
代码示例来源:origin: google/guava
public void testGetSubtype_genericSubtypeOfRawTypeWithFewerTypeParameters() {
TypeToken<List> supertype = new TypeToken<List>() {};
TypeToken<MySpecialList> subtype = new TypeToken<MySpecialList>() {};
assertTrue(subtype.isSubtypeOf(supertype));
Class<?> actualSubtype = (Class<?>) supertype.getSubtype(subtype.getRawType()).getType();
assertEquals(MySpecialList.class, actualSubtype);
assertTrue(TypeToken.of(actualSubtype).isSubtypeOf(supertype));
}
代码示例来源:origin: google/guava
public void testSubtypeOfInnerClass_nonStaticAnonymousClass_typeParameterOfOwnerTypeNotMatch() {
TypeToken<?> supertype = new TypeToken<Mall<Outdoor>.Shop<Electronics>>() {};
Class<?> subclass = new Mall<Indoor>().new Shop<Electronics>() {}.getClass();
assertFalse(TypeToken.of(subclass).isSubtypeOf(supertype));
}
代码示例来源:origin: google/guava
public void testSubtypeOfInnerClass_nonStaticAnonymousClass_typeParameterOfInnerTypeNotMatch() {
TypeToken<?> supertype = new TypeToken<Mall<Outdoor>.Shop<Electronics>>() {};
Class<?> subclass = new Mall<Outdoor>().new Shop<Grocery>() {}.getClass();
assertFalse(TypeToken.of(subclass).isSubtypeOf(supertype));
}
代码示例来源:origin: google/guava
public static void testSubtypeOfInnerClass_staticAnonymousClass() {
TypeToken<?> supertype = new TypeToken<Mall<Outdoor>.Shop<Electronics>>() {};
Class<?> subclass = new Mall<Outdoor>().new Shop<Electronics>() {}.getClass();
assertTrue(TypeToken.of(subclass).isSubtypeOf(supertype));
}
代码示例来源:origin: google/guava
public <T> void testGetSubtype_manyGenericArgs() {
class FourTypeArgs<T1, T2, T3, T4> {}
class ThreeTypeArgs<T1, T2, T3> extends FourTypeArgs<T1, T2, T3, String> {}
TypeToken<FourTypeArgs<T, Integer, ?, ?>> supertype =
new TypeToken<FourTypeArgs<T, Integer, ?, ?>>() {};
TypeToken<ThreeTypeArgs<T, Integer, String>> subtype =
new TypeToken<ThreeTypeArgs<T, Integer, String>>() {};
assertTrue(subtype.isSubtypeOf(supertype));
assertEquals(
new TypeToken<ThreeTypeArgs<T, Integer, ?>>() {},
supertype.getSubtype(subtype.getRawType()));
}
代码示例来源:origin: google/guava
public void testGetSubtype_baseClassWithNoTypeArgs() {
class SingleGenericExtendsBase<T> extends Base {}
TypeToken<Base> supertype = new TypeToken<Base>() {};
TypeToken<SingleGenericExtendsBase<String>> subtype =
new TypeToken<SingleGenericExtendsBase<String>>() {};
assertTrue(subtype.isSubtypeOf(supertype));
ParameterizedType actualSubtype =
(ParameterizedType) supertype.getSubtype(subtype.getRawType()).getType();
assertEquals(SingleGenericExtendsBase.class, actualSubtype.getRawType());
}
代码示例来源:origin: google/guava
private static void assertNotAssignable(TypeToken<?> from, TypeToken<?> to) {
assertFalse(
from.getType() + " shouldn't be assignable to " + to.getType(), to.isSupertypeOf(from));
assertFalse(
to.getType() + " shouldn't be a supertype of " + from.getType(), to.isSupertypeOf(from));
assertFalse(
from.getType() + " shouldn't be a subtype of " + to.getType(), from.isSubtypeOf(to));
}
内容来源于网络,如有侵权,请联系作者删除!