如何在非静态方法中从另一个类调用非静态方法?(爪哇)


    import java.util.*;
    import java.io.*;
    public String recToString (boolean format) {
    Date date = new Date();
        File inputFile = new File ("records.txt");
        Scanner sc = new Scanner(inputFile);
        if (format == true){
            format = Date1.usFormat();
            format = Date1.usFormat();
        } else {
            format = Date1.euFormat();
        }      
        }

我打算称usFormat和euFormat。

    import java.util.*;
    import java.io.*;
    class Date1 {    
        String month = "";
        String day   = "";
        String year  = "";
        public Date1 (String date)  { 
            StringTokenizer st = new StringTokenizer(date, "/"); 
            month = st.nextToken();
            day   = st.nextToken();
            year  = st.nextToken();
        } //end constructor   
        public  String usFormat () {   
            String date = month + "/" + day + "/" + year;
            return date;
        } //end usFormat   

        public String euFormat () { 
            String date = day + "/" + month + "/" + year;
            return date;
        } //end euFormat 
        } //end class  

请尝试忽略任何其他错误。但是,如果它搞砸了,我必须更改它才能得到它,请告诉:)

谢谢。

您需要构造一个Date1对象并对其调用方法。 你需要做类似的事情

...
String dateString = ...
Date1 date1 = new Date1(dateString);
if (format){
  format = date1.usFormat();
} else {
  format = date1.euFormat();
}    
在这种情况下,

我通常会执行以下操作

 format = new Date1(date.toString()).usFormat();
 format = new Date1(date.toString()).usFormat();

不知道为什么你不把它们变成静态的。

你正在调用:

Date1.usFormat();

像我们格式是一个静态方法。但是,正如你已经说过的,事实并非如此。 您需要通过以下方式创建 Date1 的实例:

Date1 myDate1 = new Date1("01/01/2001");

之后,您可以使用 myDate1 对象调用任一格式方法,如下所示:

format = myDate1.usFormat();

最新更新