为什么我不能在类的构造函数中调用静态方法?

时间:2012-09-05 12:09:25

标签: java methods static constructor undefined

显然我的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;
        }
    }
}

我经常使用String解析一个日期,这就是为什么我只希望这个函数只有一次&静态的。

我尝试像这样访问它:

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)未定义类型时间轴

呃......为什么?

3 个答案:

答案 0 :(得分:2)

查看您的导入部分。

您的时间轴类是在那里引用的,还是您导入应用程序的其他jar中的另一个?

答案 1 :(得分:1)

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

您可以在构造函数中调用静态方法 除非您无法访问访问修饰符限制等方法,否则没有人可以阻止您。

您的import声明中可能存在问题。请检查TimeLine类是否正确或是否已正确导入。

答案 2 :(得分:1)

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