我是 java 新手,我想知道是否可以从静态方法返回对象? 由于静态方法在类上运行......我在这里有点困惑。 另外,如果多个线程尝试调用它怎么办?
class Test
{
public static test(List<String> input) {
List<List<String>> res = new ... ;
// some code
return res;
}
}
最佳答案
从静态方法返回对象没有问题。
您的示例也适用于多线程。每个线程都会在堆上创建一个不同的对象并返回对其的引用 - 所以没有问题,该对象不是共享的。
静态方法不对类进行操作。他们只是绑定(bind)到类而不是该类的成员。这意味着它们无权访问该类的任何非静态成员。除此之外,它们与非静态方法没有太大区别。
如果您的静态方法访问(写入或读取)静态成员,那么它可能会出现多线程问题,除非您使用锁定。
关于Java静态方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8253109/