gpt4 book ai didi

java - 我如何在通用类中使用 intValue()

转载 作者:行者123 更新时间:2023-12-02 02:50:01 26 4
gpt4 key购买 nike

我在大学的一项任务中确实面临着一个问题:

public class Num<Integer> { 
Integer x;
Integer y;

public Num(Integer x, Integer y) {
this.x = x;
this.y = y;
}

// now i have to write a method whitch returns (x, y) as a String
public String intValue() {

}

我不知道我是否有正确的基本方法或它如何工作。我想在方法intValue中写:

int i = x.IntValue();

int j = y.IntValue();

返回“(“i”,“j”)”;

编辑:我解决了这个问题。有人确认一下是否正确:

public class Zahl<T> {
public Integer x;
public Integer y;

public Zahl(Integer x, Integer y) {
this.x = x;
this.y = y;
}

public String intValue() {
int i = this.x.intValue();
int j = this.y.intValue();
return "(" + i + "," + j + ")";
}
}

编辑2:问题解决了!感谢您这么快的帮助:-)

正确的代码如下:

class Zahl<N extends Number> {
N x;
N y;

Zahl(N x, N y) {
this.x = x;
this.y = y;
}
String intValue() {
return "(" + x.intValue() + "," + y.intValue() + ")";
}

public class Test {
public static void main(String[] args) {
Zahl<Integer> z = new Zahl<>(7, 8);
System.out.println(z.intValue());
}
}

输出:(7,8)

最佳答案

使用 Integer 作为类型参数的名称是一个非常糟糕的主意...将其称为 N 或 T,而不是 Integer...

public class Num<N> {
...
}

现在我们对 N 唯一了解的是它是一个 Object,而 Object 没有 intValue 方法。因此,您可能想确保 NNumber:

public class Num<N extends Number> {
...
}

现在你可以编写你的类了:

public class Num<N extends Number> { 
N x;
N y;

public Num(N x, N y) {
this.x = x;
this.y = y;
}

public String intValue() {
return "(" + x.intValue() + ", " + y.intValue() + ")";
}
}

关于java - 我如何在通用类中使用 intValue(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44005407/

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