当前位置: 首页 > 面试题库 >

获取List中元素的类型,其中List是Java中方法的返回类型

宇文修文
2023-03-14
问题内容

我使用反射将包中的每个方法都获取了,然后根据每个方法的返回类型,我想执行一些操作。但不幸的是,我在收藏方面遇到了问题。当我找到一种方法来返回诸如List之类的集合时,我找不到找到有关List元素类型的方法。我使用下面的代码来获取方法的返回类型。

if (method.getReturnType().equals(List.class)){
    statement;
}

上面的代码运行良好,并获得了所有返回List的方法,但它只是将java.util.List作为返回类型返回,而我找不到找到了解该List中元素类型的方法。例如,如果我有这样的方法:

public List<CmsCustomerModel> getCustomerModel(){
    statement;
}

我不知道如何将CmsCustomerModel类作为返回列表的一种元素。我想知道是否有人帮助我找到这个。请指导我。


问题答案:

您可以使用getGenericReturnTypewhich返回a Type而不是a Class,并允许您获取所有类型参数等。简短而完整的示例:

import java.lang.reflect.*;
import java.util.*;

public class Test {

    public static void main(String [] args) {
        for (Method method : Test.class.getMethods()) {
            System.out.println(method.getName());
            Type type = method.getGenericReturnType();
            System.out.println("Return type: " + type.getTypeName());
            if (type instanceof ParameterizedType)
            {
                ParameterizedType pt = (ParameterizedType) type;
                System.out.println("Parameterized: " + pt.getRawType());
                for (Type arg : pt.getActualTypeArguments())
                {
                    System.out.println("  " + arg);
                }
            }
        }
    }

    public static List<Integer> getNumbers() {
        return null;
    }

    public static List<String> getStrings() {
        return null;
    }
}

输出包括:

getStrings
Return type: java.util.List<java.lang.String>
Parameterized: interface java.util.List
  class java.lang.String
getNumbers
Return type: java.util.List<java.lang.Integer>
Parameterized: interface java.util.List
  class java.lang.Integer


 类似资料:
  • 我是一个新手,我尝试运行一个GitHub项目,但遇到了一个错误,比如类型ListDynamic不是类型ListInt的子类型。Github链接 误差线 以上代码文件 如有任何帮助,我们将不胜感激,并提前向您表示感谢。

  • 我正在解码一个响应体,我得到了错误: 我正在解析JSON对象的JSON数组,其中一个字段也是对象列表,我怀疑我的问题源于此。我也在使用json_serializable库。下面是我的代码,我省略了一些字段,更改了一些变量名称,但它代表相同的代码: 从。json_serializable生成的g dart文件(将编码部分复制): 这是我未来的职能:

  • 我从Firestore示例中复制了一段代码: 但是我得到了这个错误 这里出了什么问题?

  • 我相信你知道上面的问题。我想知道我怎样才能解决它。我知道我的数据是列表形式的,但在我使用的数据类map中。我真的不明白我应该如何改变它的工作,基本上我只是跟随颤振。开发文档 如果你想知道我做了什么 我基本上是用json_serializable解析数据的。在使用测试数据进行的测试中,所有测试都运行良好。 我的数据: 我的模型包含一个标题,图像 ` 我正在使用以下代码使用数据: 我希望我写得清楚 -

  • 本文向大家介绍python随机取list中的元素方法,包括了python随机取list中的元素方法的使用技巧和注意事项,需要的朋友参考一下 随机取 list 中的元素 random.sample 以上这篇python随机取list中的元素方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 问题内容: 背景 我曾经写过这种方法: 应该这样称呼它: 这很好用(尽管我在研究当前容易出错的问题时在这里的答案中已经看到)。 目前的情况 无论如何,现在我正在编写以下代码(在扩展javax.servlet.jsp.tagext.TagSupport的类中): 目的是可以这样称呼: 我的评估方法中的代码显然不起作用。的第二个参数应该是Class对象。这导致我: 我的问题 如何获得通用(返回)类型的