0

明らかに私の Java Pause は長すぎました...

私は次のクラスを持っています:

public class TimeLine {

    public static final String TIME_LINE_DATE_FORMAT = "dd.MM.yyyy";


    public TimeLine(Context context, LinearLayout layout)
    {
        this.context = context;
        this.layout = layout;           
    }

    // some methods and stuff

    public static Date getDateFromString(String dateString)
    {
        SimpleDateFormat s = new SimpleDateFormat(TIME_LINE_DATE_FORMAT);
        try {
            return s.parse(dateString);
        } catch (ParseException e) {            
            e.printStackTrace();
            return null;
        }
    }
}

私は文字列から日付への解析を頻繁に使用します。そのため、この関数を1回だけ静的に使用したかったのです。

私は次のようにアクセスしようとします:

public class TrackedValue {

    private double value;
    private String unit;
    private Date date;

    public TrackedValue()
    {       
    }

    public TrackedValue(Date date, String unit, double value)
    {
        this.date = date;
        this.unit = unit;
        this.value = value;
    }

    public TrackedValue(String dateString, String unit, double value)
    {      
        this.date = TimeLine.getDateFromString(dateString); //Here's the error
        this.unit = unit;
        this.value = value;
    }

    // some getters and setters here

}

これは私にエラーをもたらします: メソッド getDateFromString(String) はタイムライン型に対して未定義です

えっと…どうして?

4

3 に答える 3

2

imports セクションを見てください。

あなたのタイムライン クラスはそこで参照されていますか、それともアプリケーションにインポートした他の jar から別のものがありますか?

于 2012-09-05T12:20:52.197 に答える
1

Why can't I call a static method in the constructor of a class?

コンストラクターで静的メソッドを呼び出すことができ、アクセス修飾子制限のようなメソッドへのアクセス権がない限り、誰もあなたを止めることはできません。

importステートメントに問題がある可能性がありますTimeLine 。クラスが存在するか、正しくインポートされているかを確認してください。

于 2012-09-05T12:28:24.517 に答える
1

いや... TimeLine は保存されていないため、コンパイルされていません... 私は今、少しばかげていると感じています :-/ みんなありがとう!

于 2012-09-05T12:33:36.107 に答える