0

私は次のクラスを持っています:

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:タイトルを非静的に修正しました(プライベートから)

4

1 に答える 1

3

はい、次の理由により、allInp へのアクセスは不要なアクセスから保護されます。

  1. callFromThirdPartyApp() が呼び出されるたびに、HideInput の新しいインスタンスが作成されます。
  2. allInp はパラメータとして workWithInput() に渡されます。
  3. allInp は、不変クラスである文字列です。

allInp は、HideInput の不注意な共有に対して安全であるだけでなく、#2 と #3 によりスレッドセーフでもあります。

于 2013-03-08T16:25:51.647 に答える