0

クラスから戻り値を取得しようとしていますstring.format()が、エラーが発生して値が返されないと思います。

クラス:

public class FilterTime {
    public String getData(String day, Integer time){
        // define the result
        String result = "";
        String convertedDay = "";

        if(day == "Friday 30th August"){
            convertedDay = "30";
        }
        if(day == "Saturday 31st August"){
            convertedDay = "31";
        }
        if(day == "Sunday 1st September"){
            convertedDay = "01";
        }

        if(time == null){
            result = "http://www.website.org/json.php?f=%s&type=date".format(convertedDay);
            Log.d("RESULT", "r:" + result);
        }else{
            result = "http://www.website.org/json.php?f=%s&time=@d&type=dateAndTime".format(convertedDay, time);
            Log.d("RESULT", "r:" + result);
        }

        return result;
    }
}

アクティビティで結果をトレースすると:

FilterTime filterTime = new FilterTime();
String filteredURL = filterTime.getData(dayFilter, timeFilter);

filteredURL をトレースすると、何も返されません。次に、Log.d()をクラスに入れましたが、次をトレースしても何も返されないことがわかりました。

if(time == null){
                result = "http://www.website.org/json.php?f=%s&type=date".format(convertedDay);
                Log.d("RESULT", "r:" + result);
            }else{
                result = "http://www.website.org/json.php?f=%s&time=@d&type=dateAndTime".format(convertedDay, time);
                Log.d("RESULT", "r:" + result);
            }

エラーはなく、静的な方法でアクセスする必要があるという警告だけであるため、エラーがどこから来ているのかわかりませんが、エラーは if ステートメントにあると思います。

4

3 に答える 3

3

の内容を比較するには equals()を使用しStringます。

この文字列を指定されたオブジェクトと比較します。引数が null ではなく、このオブジェクトと同じ文字シーケンスを表す String オブジェクトである場合にのみ、結果は true になります。

したがって、コードを次のように変更します。

if("Friday 30th August".equals(day)){
        convertedDay = "30";
}

==演算子は、オブジェクトへの参照を含む変数であるオブジェクト参照を比較します。参照が同じオブジェクトを指しているかどうかをチェックします。

PS:- nullequals()による NPE を回避するために String リテラルで呼び出されます。 day

于 2013-07-03T11:13:21.700 に答える
0

を使用する代わりに、間違っStringた比較があります。==equals

format無効な比較のためにconvertedDay空のままであるため、何も出力していません。""String

于 2013-07-03T11:14:00.990 に答える