java怎么停止工作_java – 为什么我的泛型方法停止工作?

在我的项目中,我有一个工厂方法,它加载一个实现接口的对象.你传入你想要的课程并接受它的实例化,就像这样.

public class Factory {

public static E load( Class clss ) throws Exception {

return clss.newInstance();

}

}

你可以像这样调用它:

MyObject obj = Factory.load( MyObject.class );

这个代码在Eclipse 3.4和Java 6u13中运行得很好,但是今天我收到了一台新笔记本电脑并安装了Eclipse 3.5和java 6u15,现在我到处都遇到类型不匹配.

MyObject obj = Factory.load( MyObject.class );

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Type mismatch: cannot convert from SomeInterface to MyObject

在工厂之前将一个演员阵容放在那条线上会使它消失并且一切运行良好,但它会让线条变得不那么干净,而且之前我不需要它,那么是什么给出了?

解决方法:

这是获取此错误所需的所有代码吗?我在今天看到的一些代码中看到过非常相似的东西.还有一个附加参数传递到Factory方法的等效项中,该方法也具有泛型类型.这是缺少它的通用定义,我认为应该归咎于混淆编译器.

即,如果你的工厂方法看起来像

public class Factory {

public static E load( Class class, Key key ) {

// return an instance of E

}

}

哪里有一些Key类定义了这样的东西

public class Key {

....

}

给这样的东西调用方法,注意关键字声明没有泛型

Key key = new Key()

MyObject obj = Factory.load( MyObject.class, key );

希望有所帮助,

标签:java,eclipse,generics

来源: https://codeday.me/bug/20190701/1344496.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值