同事提供了解决办法,但不太是我想要的,所以来提问的
同事告诉我的方法
public static VO getVO(DTO dto, Function function){
return function.apply(dto);
}
使用方式:
getVO(new TestDTO(),TestVO::new);
同事的方法可能是最完美的了;不需要对VO类和DTO类进行改造,但是我有点轴,想知道另一种方式,不忍心老缠着同事问,
我想要的方法:
public static VO getVO(DTO dto){
return new VO(dto);
}
使用方式:
getVO(new TestDTO());
VO类:
public class TestVO {
private String name;
public TestVO(TestDTO dto) {
this.name = dto.getName();
}
}
DTO类
public class TestDTO {
private String name;
public String getName() {
return name;
}
}
所以想请问下大家,以我想要的那种方式该如何改造代码才可以实现呢?
public static VO getVO(DTO dto){
return new VO(dto);
}
静态检查报错:
Type parameter 'VO' cannot be instantiated directly
我想用的使用方式可以使 一个静态类接受一个泛型,然后调用getVO方法,
public class VOUtil{
public static VO getVO(DTO dto){
return new VO(dto);
}
}
使用方式如下:
VOUtil.getVO(dto);
这个样子可行么