0
なぜ、行sum + = nums [i] .doubleValue()にオートボクシングがありません。なぜあなたはsum + = nums [i]を書くことができないのですか?なぜ、autoboxingとunboxingの手動の方法であるdoubleValue()が必要なのですか?私は正常にオブジェクトのフォームの番号がメソッドから返され、自動的に二重に割り当てられているプログラムをコンパイルしました。一般的なオートボクシングは、オブジェクトを使ったオートボクシングの作業が可能です。
public class genericbound<T extends Number> {
T[] nums;
genericbound(T[] o){
nums=o;
}
double average(){
double sum=0.0;
for(int i=0; i<nums.length; i++)
sum +=nums[i].doubleValue();
return sum/nums.length;
}
}
class BoundsDemo{
public static void main(String args[]){
Integer inums[]={1,2,3,4,5};
genericbound<Integer> iob= new genericbound<Integer>(inums);
double v=iob.average();
System.out.println("iob average is"+v);
Double dnums[]={1.1, 2.2, 3.3, 4.4, 5.5 };
genericbound<Double> dob= new genericbound<Double>(dnums);
double w= dob.average();
System.out.println("dob average is "+w);
}
}
ありがとうございますが、私はプログラムの "extend Number"を削除してコンパイルしようとしましたが、まだエラーがありました。どこに他の同様のタイプのプログラムがありますか? aa aa –
ありがとうございます。しかし、私はプログラムの "extend Number"を削除してコンパイルしようとしましたが、まだエラーがありました。他の同様のタイプのプログラムでは、この行を参照してください。int v = iob.getob();このプログラムは クラスゲン TのOBに動作します。 Gen(T o){ ob = o; } T getob(){ return ob; } クラスGenDemo { public static void main(文字列args []){ Gen iob = new Gen (88); int v = iob.getob();System.out.println( "value" + v); } } –