当前位置: 首页 > 知识库问答 >
问题:

不使用静态的Java全局方法

巢承安
2023-03-14

有没有办法在Java中创建一个可以从其他类访问的方法,而不必使该方法成为静态的?正如我在网上看到的所有解决方案所说,使方法成为静态的方法对我不起作用,因为我试图从方法中引用一个非静态变量。我引用的变量this(指它所在的类)。

共有1个答案

齐思淼
2023-03-14

如注释中所述,如果需要引用此,它不是全局方法,因为它绑定到单个实例。如果其他代码要使用该方法,则需要创建一个实例。

 类似资料:
  • 在Spring测试中,我知道我可以使用Mockito像模拟静态方法(通常是静态util方法:生成id,从Redis获取值): 但是每种测试方法都要这样做又丑又麻烦,有什么办法可以做到这一切(我可以有一个单一的嘲笑行为) 我在想可能是junit5扩展,或者Mockito扩展,这似乎是一个常见的问题,我想知道是否有人尝试了一些成功的东西。

  • 我是一个程序员初学者...这里我有一段代码有两个函数...其中一个使用全局变量,而另一个使用局部静态变量... 下面是代码: 我两次调用这些函数的原因是为了让我明白,第二次调用该函数时,更改将存储到变量中,因此结果将不同。 null

  • 问题内容: 我想知道何时使用静态方法?假设我有一个带有几个和的类,一个或两个方法,并且我希望这些方法只能在该类的实例对象上调用。这是否意味着我应该使用静态方法? 例如 要么 我很困惑! 问题答案: 一个经验法则:问自己“即使尚未构建Obj,调用此方法是否有意义?” 如果是这样,那肯定是静态的。 因此,在一个类中,Car你可能有一个静态的方法,因为即使没有人制造过汽车,也可能想知道35mpg转换为什

  • 问题内容: 我想知道何时使用静态方法?假设我有一个带有几个getter和setter的类,一个或两个方法,并且我希望这些方法只能在该类的实例对象上调用。这是否意味着我应该使用静态方法? 例如 要么 (这是静态方式吗?) 我很困惑! 问题答案: 一个经验法则:问自己“即使尚未构建Obj,调用此方法是否有意义?” 如果是这样,那肯定是静态的。 因此,在一个类中,你可能有一个静态的方法,因为即使没有人制

  • 问题内容: 尝试在静态类中调用非静态方法时遇到错误。 无法从类型播放中静态引用非静态方法methodName() 我不能使该方法静态,因为这也给我一个错误。 此静态方法无法从xInterface隐藏实例方法 有什么办法可以在另一个静态方法中轮回调用非静态方法?(这两种方法位于单独的包和单独的类中)。 问题答案: 从静态方法中调用非静态方法的唯一方法是使类的实例包含非静态方法。根据定义,非静态方法是

  • 问题内容: 我有一个关于可变范围的问题。 例如: 现在,我创建两个线程,并为每个线程创建一个实例。 当我在每个线程中调用时,可以保证线程安全吗? 本地变量存储在哪里?每个线程的堆栈?堆空间? PS我知道在这种情况下,静态是毫无意义的。我在我们的旧代码中找到了它;我只是想确定我所知道的! 问题答案: 局部变量存储在每个线程自己的堆栈中。这意味着局部变量永远不会在线程之间共享。这也意味着所有本地原始变