gpt4 book ai didi

java - 如何使用通用方法获取实例

转载 作者:行者123 更新时间:2023-12-01 07:58:21 24 4
gpt4 key购买 nike

我正在尝试使用通用方法构建一页汇编器。以下是一段代码。在此代码中,IEntity 是数据库实体的标记接口(interface)。

public abstract class PageHrefBuilder implements HrefBuilder<IEntity, PageLinks> {

@Override
public PageLinks buildLinks(IEntity entity) {
return null;
}
}

public interface HrefBuilder<E extends IEntity, L extends Links> {

public L buildLinks(E dto);
}

因此,我们有一个接口(interface)表示可以使用 IEntity 类型的类构建链接并返回 Links 类型的值。所以我想在抽象类中编写一些通用代码,而抽象类不知道它要处理什么类型的实体。例如实体可以是UserEntity、OrderEntity等。

所以我的问题是在抽象类中如何使用instanceof或if else方法获取类实例来构建链接。

有人可以帮我解决这个问题吗?

最佳答案

您可以使您的 buildLinks 方法采用 Class<T>参数而不是您必须传递的对象。

所以会这样

public L buildLinks(Class<E> dto);

然后在你的抽象类中

@Override
public PageLinks buildLinks(Class<IEntity> dto) {
return dto.newInstance();
}

希望这个回答可以帮到你。

关于java - 如何使用通用方法获取实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60911913/

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