0

显然我的 Java 暂停时间太长了......

我有以下课程:

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

查看您的导入部分。

你的时间线类是在那里引用的,还是你已经导入到应用程序的其他 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

dah... TimeLine 没有保存,因此没有编译...我现在觉得有点愚蠢:-/ 谢谢大家!

于 2012-09-05T12:33:36.107 回答