-1

作成したUtilsクラスの静的メソッドにアクセスしようとしています。

 public class Utils{

 public static Date convertToDate(String dateString, String dFormat){

    SimpleDateFormat dateFormat = new SimpleDateFormat(dFormat, Locale.US);

    Date convertedDate;
    try {
        convertedDate = dateFormat.parse(dateString);
        Log.i("date", "convertedDate =  " + convertedDate);

    } catch (ParseException e) {
        e.printStackTrace();
        return null;
    }

    return convertedDate;

}
 }

私がこのようにこのメソッドにアクセスしようとしたとき:

 Utils.convertToDate("03-04-2012", "mm-dd-yyyy");

nullポインタ例外が発生します。

これはどうやってできるの???

4

2 に答える 2

4

私の推測では、例外をスローしているのはそのメソッドではありませんが、nullを返し、次のように戻り値を使用しているという事実です。

Date date = Utils.convertToDate("03-04-2012", "mm-dd-yyyy");
System.out.println(date.toString());

これは、例外を効果的に飲み込み、何も問題がないふりをすることの問題です。形式は「mm-dd-yyyy」ではなく「MM-dd-yyyy」である必要があることに注意してください。また、ブロックから出てくるのを待ってから戻るのではなく、ブロックconvertedDate内で宣言して返した方がコードが簡単になることにも注意してください。trytry

(これをすべて言っても、そのコードが例外をスローすることは期待していませんでした。必要な値は得られませんが、実際に解析しても問題ありません...短いが完全なものを生成できれば問題を示すプログラム、それは本当に役立ちます。)

于 2012-04-05T18:10:52.150 に答える
0

代わりにこれを使用してください:

Utils.convertToDate("03-04-2012", "MM-dd-yyyy");

sincemmは分を表し、whileは月をMM表します。

于 2012-04-05T18:11:56.480 に答える