私は最近 Java を学んでいますが、Java は他のほとんどの言語とはかなり異なります。私と他の何人かは、何かが機能しない理由を理解できずに頭をかきむしっていましたが、これは私がすべて見ている問題です。THE。時間。それはいら立たしくイライラします。うまくいけば、他の人のためにこれに光を当てることができます.
これを自問したことはありますか?:
「私はこれを何時間も機能させようとしてきましたが、それを見ることができないようです。文字列「reducerFractions」を FractionReducer クラスに渡そうとしていますが、どういうわけか、そのクラスに入るとnullになる?
私はJavaを初めて使用し、これはJavaを使用した2番目のプログラムにすぎません。なぜこれが機能しないのかよくわかりません...
親クラス:
public class FractionCalc extends FractionUI
{
//member variables for this class initialized here, all are kept within this class
protected String reducerFractions;
{
/*Paramiters in here math stuff ect*/
finalNum = (int)fin_num;
finalDem = (int)fin_dem;
reducerFractions = finalNum + "/" + finalDem;
//puts these together in a protected string
System.out.println(reducerFractions); //<- testing here shows its working as needed
reducer.setFraction(finalNum, finalDem);
//overloading the function shows it's working for the two ints as ints themselves
reducer.setFraction(reducerFractions);
int rNum = reducer.getResultsNum();
int rDenom = reducer.getResultsDenom();
String debug = rNum + " " + rDenom;
System.out.println(debug);
//right here gives back the correct numbers using an int approach
}
子クラス:
public class FractionReducer extends FractionCalc
{
public void setFraction(String a)
{
System.out.println(reducerFractions);
//Right here it's saying it's null, I don't understand why...
String[] stringReducedFraction = reducerFractions.split("/");
double numerator = Float.valueOf(stringReducedFraction[0]);
double denominator = Float.valueOf(stringReducedFraction[1]);
//split up the string here for other uses
}
//Other stuff
}
ターミナル出力
2/1 //The string prints out fine in the parent class
null//but null in the child?
Exception in thread "main" java.lang.NullPointerException
at FractionReducer.setFraction(FractionReducer.java:25)
at FractionCalc.FractionCalc(FractionCalc.java:73)
at FractionUI.Run(FractionUI.java:47)
at MainP2.main(MainP2.java:19)
ここには (ほとんどの人にとって) 明らかな問題がありますが、オブジェクトを何度も操作して初めて明らかになります。