Java泛型(Generics)是JDK 5.0引入的一个新特性,允许在定义类、接口和方法时使用类型参数。泛型的主要目的是提高代码的可重用性和类型安全。通过使用泛型,可以在编译时检查类型,避免运行时的类型转换错误。
Java泛型主要有以下几种类型:
泛型广泛应用于集合类(如List<T>
)、工厂模式、策略模式等场景。下面是一个使用泛型实现实体转换器的示例。
假设我们有两个实体类SourceEntity
和TargetEntity
,我们希望实现一个通用的转换器EntityConverter
,可以将SourceEntity
转换为TargetEntity
。
// 源实体类
public class SourceEntity {
private String name;
private int age;
// 省略构造函数、getter和setter
}
// 目标实体类
public class TargetEntity {
private String fullName;
private int years;
// 省略构造函数、getter和setter
}
// 泛型转换器接口
public interface EntityConverter<S, T> {
T convert(S source);
}
// 具体转换器实现
public class SourceToTargetConverter implements EntityConverter<SourceEntity, TargetEntity> {
@Override
public TargetEntity convert(SourceEntity source) {
TargetEntity target = new TargetEntity();
target.setFullName(source.getName());
target.setYears(source.getAge());
return target;
}
}
// 使用示例
public class Main {
public static void main(String[] args) {
SourceEntity source = new SourceEntity();
source.setName("John Doe");
source.setAge(30);
EntityConverter<SourceEntity, TargetEntity> converter = new SourceToTargetConverter();
TargetEntity target = converter.convert(source);
System.out.println("Full Name: " + target.getFullName());
System.out.println("Years: " + target.getYears());
}
}
<? extends T>
表示上界通配符,只能读取不能写入;<? super T>
表示下界通配符,只能写入不能读取。通过以上示例和解释,希望你能更好地理解和使用Java泛型来实现实体转换器。
领取专属 10元无门槛券
手把手带您无忧上云