java转换库可以处理泛型类型吗?
我正在寻找一个用于转换支持泛型类型的值的 Java 库。也就是说,如果我有 Foo
,那么该库应该支持将 String
转换为 Foo
或 Foo< ;Int>
。
当然,给定一个类,我们无法说出它的通用组件。我的目标是用字符串值填充 bean。因此可以检查 bean 的属性以获取通用类型信息。
I'm looking for a Java library for converting values that supports generic types. That is, if I have Foo<T>
, then the library should support converting a String
to Foo<String>
or Foo<Int>
.
Of course given a class, one cannot tell its generic component. My aim is to populate a bean with string values. So the bean's properties can be examined for the generic type information.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
答案是,没有这样的图书馆。
此外,我不相信有可能创建一个。
The answer is, there isn't such a library.
Further, I don't believe it would be possible to create one.
以下是解决方案的框架:
请注意,源类型是
Class
,但目标是Type
。如果它是一个Class
,则可以将代码委托给现有库之一。如果targetType
是ParameterizedType
,那么您可以从中获取类型参数(类),然后可以使用标准库转换为它们。使用:
Type targetType = field.getGenericType()
Type targetType = method.getGenericParameterTypes()[0]
Here is a skeleton of a solution:
Note the source type is a
Class
, but the target is aType
. If it is aClass
, then code can be delegated to one of the existing libraries. IftargetType
is aParameterizedType
, then you can get the type arguments (classes) from it, then the standard libraries can be used to convert to them.To use:
Type targetType = field.getGenericType()
Type targetType = method.getGenericParameterTypes()[0]