java - 在 Java 中生成非静态类的实例

标签 java

我有以下类(class):

public class MyClass {

   public static void callFromThirdPartyApp(String allInput){
      HideInput hi = new HideInput();
      hi.workWithInput(allInput);
   }
}

public class HideInput {
   public void workWithInput{String allInp)

   work with allInp...
}

我想要实现的是,每当 callFromThirdPartyApp调用方法时,它将获取输入,启动一个非静态类,将所有输入传递给该类并让它使用它。

挑战在于callFromThirdPartyApp可以同时调用。这段代码会启动 HideInput 的不同实例吗?类将确保 allInp不能被该类的其他实例触及?

EDIT1:缩进 EDIT2:抱歉,我的意思是非静态的,而不是私有(private)的 EDIT3:将标题修改为非静态(来自私有(private))

最佳答案

是的,由于以下原因,对 allInp 的访问将不会受到不必要的访问。

  1. 每次调用 callFromThirdPartyApp() 时都会创建 HideInput 的新实例。
  2. allInp 作为参数传递给 workWithInput()。
  3. allInp 是一个 String,它是一个不可变的类。

allInp 不仅可以安全地防止无意中共享 HideInput,而且由于 #2 和 #3 的原因,它也是线程安全的。

关于java - 在 Java 中生成非静态类的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15298474/

相关文章:

java - 我应该在哪里放置 XSD 文件以用于 JAXB 代码生成和 XML 验证

java - 在多个应用程序中使用自定义 AccountAuthenticator

java - Grails 3.0.4 部署本地主机但不是远程部署

java - Excel Alt+Enter 与换行符\n 相同吗?

java - 如何提供对 DAM 内容的受限访问?

java - 如何使驱动程序类中的方法看到另一个类的子类?

java - 如何在eclipse中找到动态web项目的main方法?

java - 如何使用 node.js child_process API 运行 jar 文件?

java - 带 Keycloak 的 Quarkus GraphQL 客户端

java - vector 数学中的大 float