java 创建泛型对象_java – 使用泛型,我如何定义一个允许传入任何对象并且不提供警告的类?...

我有一个这样定义的接口:

public interface AdditionalProcessing

 {

public void postProcess(Pre pre, Post post);

}

而且我已经决定要创建一个扩展它的NoAdditionalProcessing类.这是一个无操作,它不会为它的实现做任何事情.这是我编译的实现:

public class NoAdditionalProcessing implements AdditionalProcessing {

@Override

public void postProcess(Object o, Object o2) {

}

}

问题是,当我将其传递给这样的方法签名时:

public O map(I source, Class destinationClass, AdditionalProcessing additionalProcessing) throws MappingException

它给我一个警告方法调用说:

Unchecked assignment: …NoAdditionalProcessing to …AdditionalProcessing

那些……是我排除的包装名称.有没有办法摆脱这个警告?我基本上想要定义NoAdditionalProcessing,所以它说,“我会接受任何东西,它是无关紧要的,这没关系”.

我试过这个:

public class NoAdditionalProcessing implements AdditionalProcessing

但这给了我一个错误,因为它要求我传入Object.我试过了

public class NoAdditionalProcessing implements AdditionalProcessing extends Object, ? extends Object>

但那不编译.

解决方法:

更改类声明以为类型参数赋值:

public class NoAdditionalProcessing

implements AdditionalProcessing

然后,将方法签名更改为具有超级通配符,以便可以为任何目标类传递NoAdditionalProcessing:

public O map(I source, Class destinationClass,

AdditionalProcessing super I, ? super O> additionalProcessing)

标签:java,generics

来源: https://codeday.me/bug/20190715/1468275.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值