public static Page<T> getPageData(Pageable pageable,Class<T> clz){ return new Page<clz>(pageable.getPageNumber()+1,pageable.getPageSize()); }该怎么把泛型放进去?
时间: 2024-03-12 20:43:40 浏览: 50
java实现分页技术
在Java中,泛型是在编译时确定的,无法在运行时动态地传入泛型参数。如果你想要在运行时动态地传入泛型参数,可以考虑使用反射来实现。
具体来说,你可以使用以下代码来实现:
```java
public static <T> Page<T> getPageData(Pageable pageable, Class<T> clz) {
ParameterizedType type = (ParameterizedType) Page.class.getGenericSuperclass();
Type[] arguments = type.getActualTypeArguments();
Class<T> argument = (Class<T>) arguments[0];
return new Page<T>(pageable.getPageNumber() + 1, pageable.getPageSize());
}
```
在这段代码中,我们使用反射获取了Page类的泛型参数类型,并将其动态地传入了Page的构造函数中。注意,这里使用了ParameterizedType和Type两个类来获取泛型参数类型,因为Java中的泛型是类型擦除的,无法在运行时直接获取到泛型参数类型。
阅读全文