问题标签 [static-methods]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
8316 浏览

java - 静态方法或单例性能方面(Android)?

在具有少量 POJO 和许多对其进行操作的辅助方法的应用程序中,在性能方面更好的是:使辅助类成为单例还是使方法静态?

0 投票
9 回答
2139 浏览

java - 静态变量和方法

我遇到了一个这样设置的类:

我对静态方法的理解是,除非它们是常量并且不会更改,否则不应在其中使用类变量。相反,您应该使用参数。我的问题是为什么通过执行 MyClass.doSomething() 多次调用时这不会中断。在我看来,它不应该起作用,但确实起作用。它只会通过 if 语句一次。

那么有人可以向我解释为什么这不会中断吗?

0 投票
7 回答
62653 浏览

java - 使用私有静态方法

您如何看待使用私有静态方法

就个人而言,我更喜欢使用静态私有方法而不是非静态方法,只要它不需要访问任何实例字段。

但我听说这种做法违反了 OOP 原则。

编辑:我想从风格的角度来看,而不是性能。

0 投票
2 回答
10987 浏览

c# - 泛型类的静态方法?

好的,情况就是这样:

我有一个通用的基类,我需要用一些静态值来初始化它。这些值与我的泛型基类加载的类型无关。

我希望能够做这样的事情:

同时还有这样的课程:

有没有办法做到这一点?我可以创建一个非泛型基类并将静态方法放在那里,但我不喜欢那个“hack”:)

0 投票
11 回答
1095522 浏览

python - Python中的静态方法?

是否可以在 Python 中有静态方法,我可以在不初始化类的情况下调用这些方法,例如:

0 投票
15 回答
39407 浏览

language-agnostic - 使用大量静态方法是一件坏事吗?

当该类不需要跟踪内部状态时,我倾向于将类中的所有方法声明为静态。例如,如果我需要将 A 转换为 B 并且不依赖于可能会发生变化的某些内部状态 C,我会创建一个静态转换。如果有一个我希望能够调整的内部状态 C,那么我添加一个构造函数来设置 C 并且不使用静态转换。

我阅读了各种关于不要过度使用静态方法的建议(包括关于 StackOverflow 的建议),但我仍然无法理解上面的经验法则有什么问题。

这是一个合理的方法吗?

0 投票
8 回答
9242 浏览

c# - ReSharper 抱怨方法可以是静态的,但不是

为什么 ReSharper 在方法可以变为静态时会抱怨,但不是?

是因为只创建了一个静态方法的实例(在类型上),从而节省了性能吗?

0 投票
7 回答
551 浏览

c# - 我可以通过在 C# 中使用更多静态方法来获得函数式编程 (F#) 的相同好处吗?

我承认我还没有深入了解 F#。但是在 30,000 英尺的描述中,他们一直在谈论易于测试且没有可变状态的代码。这和静态方法一样吗?

我可以通过在具有所有静态方法的类中编写一些代码来获得 F# 的好处吗?

我只是在寻找简短的答案,我知道有关该主题的整本书都存在。

0 投票
1 回答
567 浏览

linq - 静态方法与使用 Linq2Sql 的存储库模式

我想到了在部分 Linq 查询上创建静态方法的想法,例如

因此,例如,我可以通过以下方式轻松找到用户:

这是公认的设计模式吗?与存储库模型相比,这样做的优点/缺点是什么?

0 投票
7 回答
608 浏览

java - 帮助查看以下代码,它是线程安全的吗?

构造函数 Foo() 可能会从多个线程中调用。我关心的是私有静态字段“callback”和静态方法“getCallback()”。

可以看出,每次调用“getCallback()”时,都会为静态字段“回调”分配一个新值。

我的猜测是它不是线程安全的,因为关键字static总是附加到类而不是实例上,这意味着 Foo 的静态字段“回调”可能会被构造另一个 Foo() 的其他线程覆盖. 它是否正确?

如果我错了,请纠正我。谢谢!

编辑:我的目的是在课堂上的某个地方保留“回调”,以便以后可以重用它。但这并不容易,因为 Foo 从一个类扩展而来,该类具有强制传递“回调”的构造函数。