在Java中,泛型类允许我们在类定义时指定一个或多个类型参数。这些类型参数可以在类的方法中使用,从而实现代码的重用和类型安全。泛型方法重载是指在同一个类中定义多个泛型方法,它们具有相同的方法名,但参数类型不同。
下面是一个简单的泛型类示例,其中包含了泛型方法重载:
public class GenericBox<T> {
private T content;
public void setContent(T content) {
this.content = content;
}
public T getContent() {
return content;
}
// 泛型方法重载:相同的函数名,但参数类型不同
public void printContent() {
System.out.println("Content: " + content);
}
public void printContent(boolean showType) {
if (showType) {
System.out.println("Content: " + content + " (Type: " + content.getClass().getSimpleName() + ")");
} else {
System.out.println("Content: " + content);
}
}
}
在这个例子中,我们定义了一个名为GenericBox
的泛型类,它有一个类型参数T
。类中有两个泛型方法重载:printContent()
和printContent(boolean showType)
。这两个方法的功能相似,但后者可以根据showType
参数的值来决定是否显示内容类型。
使用这个泛型类的示例:
public class Main {
public static void main(String[] args) {
GenericBox<Integer> intBox = new GenericBox<>();
intBox.setContent(42);
intBox.printContent(); // 输出:Content: 42
intBox.printContent(true); // 输出:Content: 42 (Type: Integer)
GenericBox<String> strBox = new GenericBox<>();
strBox.setContent("Hello, world!");
strBox.printContent(); // 输出:Content: Hello, world!
strBox.printContent(true); // 输出:Content: Hello, world! (Type: String)
}
}
在这个示例中,我们创建了两个GenericBox
对象,一个用于存储Integer
类型的值,另一个用于存储String
类型的值。我们可以看到,泛型方法重载使得我们可以使用相同的方法名来处理不同类型的值。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。