[英]How do I instantiate Generic types in Java?
package edu.uab.cis;
public class Fraction<Num> extends java.lang.Number{
private <Num> numerator;
private <Num> denominator;
public Fraction(Num num, Num denom)
{
this.numerator = num;
this.denominator = denom;
}
public double doubleValue() {
return 0;
}
public float floatValue() {
return 0;
}
public int intValue() {
return 0;
}
public long longValue() {
return 0;
}
public <Num> void number(Num num)
{
}
}
我试图创建一个将接受所有上述原始类型的泛型类型,因此我只能使用一种方法而不是使用多种方法。 如何正确地使用泛型类型实例化我的方法,以使其只接受所有数字类型,并且仅接受数字类型?
将课程行更改为
public class Fraction<Num extends Number> extends java.lang.Number {
消除变量声明周围的括号:
private Num numerator;
并创建一个新实例,例如
Fraction<Integer> intFrac = new Fraction<Integer>(1, 2);
并且除非我对您有误解,否则您可以从number(Num num)
函数的签名中消除<Num>。
您还应该考虑将Num
更改为N
,因为泛型的约定是单个大写字母,并且Num
可以混淆为类名。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.