gpt4 book ai didi

java - Google Guice - 具有相同的删除 - java 从 v6 升级到 v7 后出现编译错误

转载 作者:搜寻专家 更新时间:2023-10-31 19:33:06 24 4
gpt4 key购买 nike

我正在为我的项目将 Java 版本从 6 升级到 7。它曾经用 java 6 编译得很好。

@Provides
VptchProvIntf provideVptchProv(NeVersion neVersion, Provider<ClVptchProv> classicProvider, Provider<RsVptchProv> rsProvider)
{
return (VptchProvIntf)provideForPlatform(neVersion, classicProvider, rsProvider);
}

@Provides
StsnVcnProvIntf provideVptchProv(NeVersion neVersion, Provider<ClStsnVcnProv> classicProvider, Provider<RsStsnVcnProv> rsProvider)
{
return (StsnVcnProvIntf)provideForPlatform(neVersion, classicProvider, rsProvider);
}

这是反编译类的快照。类型未被编译器删除,代码编译正常。

但是java升级到版本7后,这段代码开始出现编译错误

error: name clash: provideVptchProv(NeVersion,Provider,Provider) and provideVptchProv(NeVersion,Provider,Provider) have the same erasure

Java 7 是否更改了任何不允许 Guice 工作的内容。

注意:Google Guice 版本为 2.0

我需要更新 Guice 还是有任何解决方法?

最佳答案

Java 5 和 6 编译器有一个错误会接受您的方法,因为他们认为签名在检查中包含返回类型。

在 Java 7 中,方法不能具有相同的删除签名,无论它们的返回类型如何。参见 this博客文章和 this错误报告。

对于您的情况,答案是重命名您的方法之一。

关于java - Google Guice - 具有相同的删除 - java 从 v6 升级到 v7 后出现编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26014481/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com