gpt4 book ai didi

java - 如何创建 java.lang.reflect.Type

转载 作者:行者123 更新时间:2023-12-03 22:22:55 25 4
gpt4 key购买 nike

我有以下实现:

   public boolean canWrite(Type type, Class<?> clazz, MediaType mediaType) {
if (!type.getTypeName().contains("TypeX")) {
return false;
}

return true;
}

我想测试这个方法,因此我需要传入一个 Type 参数。

在我的测试中,如何为类型为 X 的 List 构造 Type 参数?

Spring 可以以某种方式填充类型,使其包含类型名称 List<x.y.y.TypeX> .我想在我的测试中做同样的事情。

最佳答案

最好的方法是在测试中创建一个你想要的类型的实例,然后提取 Type反射对象:

public final class MyTest {
private final List<TypeX> listOfTypeX = null;
private final Type typeOfListOfTypeX = MyTest.class
.getDeclaredField("listOfTypeX")
.getGenericType();
}

顺便说一句,如果 MediaType你的问题中提到的其实是 Guava 的 com.google.common.net.MediaType ,那么您还可以访问 Guava 的 com.google.common.reflect.TypeToken ,它提供了一种更简单的方法来做到这一点:
Type typeOfListOfTypeX = new TypeToken<List<TypeX>>() {}.getType();

关于java - 如何创建 java.lang.reflect.Type,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48154892/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com