java 创建泛型对象_Java泛型使用反射从方法(创建对象)获取Type

我想创建一个GenericBuilder,可以用来检索我的类中定义的Builder类。我创建了以下接口和类Java泛型使用反射从方法(创建对象)获取Type

public interface BuilderType {

}

public class MyObject implements BuilderType {

private int i;

private MyObject() {}

public int getI() {

return i;

}

public static MyObjectBuilder buildMyObject() {

MyObjectBuilder builder = new MyObjectBuilder();

return builder;

}

public static class MyObjectBuilder {

private final MyObject obj;

MyObjectBuilder() {

obj = new MyObject();

}

public MyObjectBuilder withI(int i) {

obj.i = i;

return this;

}

public MyObject build() {

return obj;

}

}

public class GenericBuilder {

public static , S> S getBuilder(Class t) {

S s = null;

try {

s = (S) t.getDeclaredMethod("build" + t.getSimpleName(), null)

.invoke(null, null);

} catch (Exception e) {

e.printStackTrace();

}

return s;

}

}

声明S =(S)t.get ......我GenericBuilder给出了一个警告投:未选中的对象转换到S,有没有消灭它的方法吗? ?

2012-11-30

JKV

+0

通常我们会'如果instanceof SomeClass'用于未经检查的转换。只是这是警告不能跳过它? –

+0

是的,我实际上可以跳过它,但只是想知道是否有办法克服它,并且我认为instanceof不能用于通用环境 –

+0

是的你是正确的。 –

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值