gpt4 book ai didi

由于 Eclipse IDE 导致的 Java 通用问题

转载 作者:行者123 更新时间:2023-12-02 02:23:54 25 4
gpt4 key购买 nike

我已经安装了eclipse:

Eclipse Java EE IDE for Web Developers.Version: Oxygen.2 Release (4.7.2)Build id: 20171218-0600

java version is:

java -versionjava version "1.8.0_112"Java(TM) SE Runtime Environment (build 1.8.0_112-b16)Java HotSpot(TM) 64-Bit Server VM (build 25.112-b16, mixed mode)

I imported project here. Project correctly builds with maven and correctly run. But my eclipse gives me error because of COMPILATION ERROR. I know what is COMPILATION ERROR but it is not, I know that is eclipse issue to handle generics.

To be sure that nothing broken I used mvn via terminal - it works correctly also but not in eclipse.

Corrupted Code example

@Component
public class PagingServiceBuilder<T extends DateTimeApi> {
@Autowired
private PagingServiceBuildHelper<?> pagingServiceBuildHelper;

@NotNull
private List<DateTimeApi> cutEventsPortion(Pageable pageable, List<DateTimeApi> events,
PageableDirection direction) {
if (pageable.getPageSize() > Constants.DEFAULT_PAGE_SIZE) {
List<DateTimeApi> sortedEvents = pagingServiceBuildHelper.sortByStartDate(events, direction);
return getEventToBeReturnedInPageObject(sortedEvents, pageable);
}
return events;
}
...
}

@Component
public class PagingServiceBuildHelper<T extends DateTimeApi> {

List<T> sortByStartDate(List<T> eventDtoList) {
return sortByStartDate(eventDtoList, PageableDirection.FORWARD);
}
...
}

Eclipse 在 sortByStartDate 方法调用上出错。

我知道这个问题一般不在于 Eclipse,看来我的配置失败了(我认为这个问题可能会出现在任何免费的 IDE 中)。我希望获得如何解决该问题的建议。我可以使用终端,但我更喜欢在开发时使用 IDE 来构建和测试项目。

附注

如果我错过了一些有用的细节,请告诉我。

添加更多详细信息

我可以使用 eclipse Java Application 配置运行项目,没有任何问题,但不能使用 eclipse maven 插件。无论如何,maven 通过终端正确处理它。

最佳答案

对我来说,这看起来像是一个编译错误。您的 pagingServiceBuildHelper 的泛型参数为 ?,因此无论如何,在 sortByStartDate 方法的上下文中 T 都是未知的作为参数传递的内容。

如果可能的话,您可以将该方法设为静态,因此 T 将从传入的参数派生(这似乎是您想要实现的目标):

public static <X> List<X> sortByStartDate(List<X> eventDtoList) {
return sortByStartDate(eventDtoList, PageableDirection.FORWARD);
}

当然,对于被调用的两参数 sortByStartDate 方法也是如此。

或者,如果您不想使其静态,泛型参数仍然应该是方法本地的:

@Component
public class PagingServiceBuildHelper {

public <T extends DateTimeApi> List<T> sortByStartDate(List<T> eventDtoList) {
return sortByStartDate(eventDtoList, PageableDirection.FORWARD);
}
...
}

关于由于 Eclipse IDE 导致的 Java 通用问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48076680/

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