据我了解,在 java 中,您可以编写一个外部类,该外部类可以导入到脚本中,然后运行,从而允许该类在多个不同的地方使用。
我想知道是否有办法用方法做同样的事情。我发现有时我需要创建一个外部类来执行一些非常小且基本的操作,如下所示。
simpleScript.java
public class simpleScript {
public static void main() {
// just a date variable which I will want to format
// but I will always one of two formats every time
// I use a date so I need a library/class function
Date dateNow = new Date();
// to use my library/class function I have to
// initialize it first
dateFormat localDateFormat = new dateFormat();
// now I can use it in the main only
String dmyNow = localDateFormat.dmyFormat(dateNow);
String timeNow = localDateFormat.timeFormat(dateNow);
}
}
日期格式.java
public class dateFormat() {
public static String dmyFormat(Date dateArg) {
SimpleDateFormat dmyStyle = new SimpleDateFormat("dd-MM-yyyy");
String dateResult = dmyStyle.format(dateArg);
return dateResult;
}
public static String timeFormat(Date dateArg) {
SimpleDateFormat timeStyle = new SimpleDateFormat("hh:mm:ss");
String timeResult = timeStyle.format(dateArg);
return timeResult;
}
}
这并没有太困扰我,直到我需要在多种不同的方法中使用它,有时只需要一个日期,所以我必须不断初始化类以使用其中的方法(我不想将其设为全局类)。
是否有另一种方法可以使我的方法无需类即可重用(跨多个 java 文件)?
最佳答案
在您所讨论的情况下,静态方法是一个合理的选择。 Static methods/members属于类本身而不属于任何一个实例。有些人将其称为属于该类的所有实例,但这并不是完全相同的含义。
静态方法是无状态的(这意味着它们除了给定的内容之外不依赖于任何其他东西,并且每次对于给定的输入都会产生相同的输出)。就像 HopeHelpful 所说的那样,您可以通过类名而不是实例名来调用/访问静态成员/方法,因为它们不需要实例。
关于没有类的 Java 方法作用域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35319557/