我有一个Object o可以转换为类型 A 和类型 B的函数。我需要一个transformForType(Type t, Object o)接受类型的函数,比如说 A 或 B,并检查是否为该类型并对其进行处理以对其进行转换。该函数的用法是这样的:B result = tranformForType(B.class, o);我的问题是定义tranformForType函数的方法是什么,如果可能的话,使用泛型类型的最佳方法是什么。问候。
2 回答
尚方宝剑之说
TA贡献1788条经验 获得超4个赞
一个简单的方法是:
static <T> T transformForType(Class<T>, Object o) { ...
那个对那个 T 类型没有任何限制,但是当然,如果 A/B 实现相同的接口,或者具有相同的基类,你可以进一步细化那个 T:
static <T extends ABInterface> T transformForType(Class<T>, Object o) { ...
例如。
请注意:显然,当您对要投射的类型没有任何限制时,您可以选择另一个答案并调用SomeClass.class.cast()
. 但是,如果您只想允许特定类型,您可能想要使用这样的transformForType()
方法(然后将使用该cast()
方法)!
添加回答
举报
0/150
提交
取消