作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我刚开始使用泛型。我想打印出一对整数和字符串。这是我的代码:
public class Pair<T> {
private T first;
private T second;
public Pair(T first, T second) {
this.first = first;
this.second = second;
}
public T getFirst() {
return first;
}
public T getSecond() {
return second;
}
public void setFirst(T first) {
this.first = first;
}
public void setSecond(T second) {
this.second = second;
}
public <T> void toString(Pair<T> k) {
System.out.println(k.getFirst());
System.out.println(k.getSecond());
}
}
public class TestPair {
public static void main(String[] args) {
Pair<String> pS = new Pair<String>("yay", "it worked" );
Pair<Integer> pI = new Pair<Integer>(1, 2);
pS.toString();
pI.toString();
}
}
目前,它可以编译,但在运行 TestPair 类时,我没有打印出任何内容。
最佳答案
您需要注意,现在您的 toString()
方法不会覆盖 Object.toString()
方法(如官方 Java 教程 here 中所述) :重写方法与其重写的方法具有相同的名称、参数数量和类型以及返回类型)。 。如果您想调用 toString()
的实现,您需要将 Pair
类型的参数传递给它,因为您的 toString()
需要 Pair
实例作为参数。我建议您将 toString
方法更改为:
public void toString() {
System.out.println(this.getFirst());
System.out.println(this.getSecond());
}
在这种情况下,当您调用时:
pS.toString();
pI.toString();
,您会得到正确的结果,因为现在您的 toString()
不需要 Pair
参数。
关于java - 使用泛型的 toString() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48725355/
我是一名优秀的程序员,十分优秀!