gpt4 book ai didi

java - 使用泛型的 toString() 方法

转载 作者:行者123 更新时间:2023-12-02 02:19:28 25 4
gpt4 key购买 nike

我刚开始使用泛型。我想打印出一对整数和字符串。这是我的代码:

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com