我有一些功能,例如:
接受字符串输入并修改并返回字符串的方法
将字符串(包含 XML)作为输入并对其进行解析并返回对象的函数。
例如:
public class MyUtils{
public static modifyString(String str){
return someString;
}
public MyObject parseString(String xml){
//Parse XML
return obj;
}
}
- 我能否将此类函数设为静态,以便任何人都可以使用它们而无需创建我的类的实例?
- 如果两个线程同时调用该函数怎么办?代码是线程安全的吗?如果是/否,如何?
- 什么时候应该使用单例对象,什么时候应该使用静态方法?
最佳答案
是的,只需添加
static
关键字。使用您给出的示例,您可以像这样调用modifyString
:MyUtils.modifyString("一些字符串数据");
在您的示例中,由于您没有修改存储在类中的任何内容,因此这取决于是否有多个对象正在访问传入的内容。类本身应该是线程安全的。
它们是不同的东西,当你需要使用实例数据时,你应该使用单例,也就是说,当你需要你的类有属性或状态时。对于实用函数,更好的选择通常是使用静态方法,因为您不太可能拥有与实用函数关联的状态。
关于java - 我可以将实用程序方法设为静态吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6697010/