gpt4 book ai didi

java - 泛型 - 动态创建数据

转载 作者:行者123 更新时间:2023-11-30 11:47:56 25 4
gpt4 key购买 nike

这是一个复杂的问题,我会发现很难解释,所以我提前道歉。

想象一个调用另一个项目方法的应用程序。我需要一种生成数据以匹配参数列表的方法。显然,如果参数类型属于我无法生成的某个类,那么它应该会失败,但如果它是 int[]int[][]一个List<String>一个Map<Integer, String>那么它应该是可能的。

我正在苦苦挣扎的是解决这个问题的体面方法。我可以通过 method.getGenericParameterTypes(); 获取参数类型参数 HashMap 的示例为 java.util.HashMap<java.lang.String, java.lang.Integer>但是有很多不同的可能性吧!

我假设泛型在这里有一些用处?唯一的问题是我无法控制正在调用的代码。我如何使用其中一种类型然后为其生成数据?

很抱歉解释不当,感谢您的帮助

谢谢

这里我们看到了一个我想调用的方法的例子,我想记录它运行的时间(这是通过反射完成的)但是,我需要为参数生成数据。我需要一种生成数据的方法来匹配

public void someMethod(Param a, Param b, Param c)
{
//some user code I have no control over
}

最佳答案

我想也许问题应该是为什么您需要这样做。也许如果您解释了您的使用/业务案例,我们可以提供更清洁(更简单)的解决方案。

从您的最后几行开始,您是在谈论想要分析该方法。一般来说,很少有人只想分析处理链中间的一个小方法。话虽这么说,我可以想象一些可能会发生这种情况的复杂情况。然而,即便如此,您也应该能够自己编写代码的情况很少。

如果这是一个实际分析的问题,但您不确定如何去做,因此觉得唯一的方法是单独调用每个方法,这样您就可以用启动/停止计时器“包装”它,我强烈建议调查 AOP .两者 SpringAspectJ非常适合 AOP,AspectJ 能够执行 Spring 无法完成的字节编织。

因此,使用 AspectJ,您将能够创建自己的分析计时器类,并在编译时将它们编织到字节码中,然后运行您的标准测试,但可视化您想要/需要的所有分析信息-方法依据。

最重要的是,它可以避免您需要想出一些复杂的方案来生成与被测试的方法并不真正相关的随机测试数据。

关于java - 泛型 - 动态创建数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9070402/

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