[英]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.