Java Reflection参数类型匹配,如何处理接口而不是类
发布时间:2020-12-15 08:39:19 所属栏目:Java 来源:网络整理
导读:给定一个带有构造函数的东西Something(List String l),我想使用klass.getConstructor(parameterTypes),其中parameterTypes [0]是类 java.util.ArrayList(因为我需要“匹配”一个给定特定实例)而不是接口java.util.List. 这不起作用(NoSuchMethodException),
给定一个带有构造函数的东西Something(List< String> l),我想使用klass.getConstructor(parameterTypes),其中parameterTypes [0]是类
java.util.ArrayList(因为我需要“匹配”一个给定特定实例)而不是接口java.util.List.
这不起作用(NoSuchMethodException),因为Java Reflection似乎需要一个EXACT类型类匹配.围绕这个最好的方法是什么? 解决方法
可能有点矫枉过正,并且无可否认可能会捡到太多的构造函数:
Constructor[] constructors = klass.getConstructors(); for(Constructor constructor:constructors) { Class<?>[] params = constructor.getParameterTypes(); if(params.length == 1 && params[0].isAssignableFrom(ArrayList.class) { //Yep could be the one you want. } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |