Java 为什么可以';我不能在类的构造函数中调用静态方法吗?

Java 为什么可以';我不能在类的构造函数中调用静态方法吗?,java,methods,static,constructor,undefined,Java,Methods,Static,Constructor,Undefined,显然我的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;

显然我的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;
        }
    }
}
我经常使用字符串到日期的解析,这就是为什么我只想使用这个函数一次&静态

我尝试这样访问它:

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

}
这给我带来了一个错误: 类型timeline的方法getDateFromString(String)未定义


呃。。。为什么?

看看你的导入部分


您的timeline类是在那里引用的,还是在您导入到应用程序的其他jar中引用的?

请查看导入部分


您的timeline类是在那里引用的,还是在您导入到应用程序的其他jar中引用的?

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

您可以在构造函数中调用静态方法,除非您没有访问该方法(如访问修饰符限制)的权限,否则没有人可以阻止您


您的
import
语句可能有问题。请检查
TimeLine
类是否存在,或者该类是否已正确导入。

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

您可以在构造函数中调用静态方法,除非您没有访问该方法(如访问修饰符限制)的权限,否则没有人可以阻止您


您的
导入
语句中可能存在问题。请检查
时间线
类是否存在,或者是否正确导入了该类。

dah。。。时间线未保存,因此未编译。。。我现在觉得有点傻:-/
谢谢大家

dah。。。时间线未保存,因此未编译。。。我现在觉得有点傻:-/
谢谢大家

我的猜测是:你指的不是你认为你是的
时间线
。或者可能是
时间线
没有按时间线的方式编译。除此之外,代码没有其他问题。调用静态方法很好。TrackedValue.java文件中的import语句对于Timeline包是什么样子的?我猜:您不是指您认为是的
Timeline
。或者可能是
Timeline
未编译Timeline未编译的方式。除此之外,代码没有其他问题。调用静态方法很好。对于Timeline包,TrackedValue.java文件中的导入语句是什么样子的?TrackedValue导入如下所示:
import java.text.simpleDataFormat;导入java.util.Date;导入android.util.Log;在.antonio.mytracker.graph.TimeLine导入。。。所以它是我的。它只是在另一个包中,TrackedValue导入如下所示:
import java.text.SimpleDateFormat;导入java.util.Date;导入android.util.Log;在.antonio.mytracker.graph.TimeLine导入。。。所以它是我的。只是在另一个包裹里