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

时间:2013-03-08 16:17:45

标签: java

我有以下课程:

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:抱歉,我的意思是非静态的,而不是私有的 EDIT3:修改非静态标题(来自私人)

1 个答案:

答案 0 :(得分:3)

是的,由于以下原因,访问allInp可以避免不必要的访问。

  1. 每次调用callFromThirdPartyApp()时都会创建新的HideInput实例。
  2. allInp作为参数传递给workWithInput()。
  3. allInp是一个String,它是一个不可变类。
  4. allInp不仅可以安全地防止无意中共享HideInput,而且由于#2和#3而导致线程安全。