我正在尝试使用通用方法构建一页汇编器。以下是一段代码。
在此代码中,IEntity是数据库实体的标记接口。
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);
}
所以我们有一个接口说可以使用IEntity类型的类建立链接并返回Links类型的值。所以我想在抽象类中编写一些通用代码,而抽象类不知道它应该处理哪种类型的实体。
例如,实体可以是UserEntity,OrderEntity等。
所以我的问题是,如何在抽象类中使用instanceof或是否采用其他方法来使类实例建立链接。
有人可以帮我这个忙。
最佳答案
您可以使 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/