は、コードのこの作品は、コンパイルされませんsynchronizedブロックに続くコードが新しい宣言された変数を認識することを期待してください。どこが間違っていますか?アクセスできない変数は、Java
2
A
答えて
5
これは同期ではなく、{}
シンボルです。彼らはif
、for
、のいずれかに関係なく、スコープを定義します。したがって、ブロックが完了すると、a
はそのブロック内で宣言されているため、範囲外になります。 (Object a
宣言の最後にセミコロンがありませんが、コピーするのを忘れてしまったと思われます)。
1
変数スコープは実行されるものによって決まらない。変数は、彼らだけがで宣言されているブロック内で表示されているあなたは、おそらくこのような何かをしたい:ブロックの外に住んでいないブロック内で定義さ
Object a;
synchronized(obj) {
a = new Object()
}
System.out.println(a.toString());
0
変数。
Java Language Specificationより:
ブロック(§14.2)内のローカル変数宣言の範囲は、宣言が出現するブロックの残りの部分で、それ自身の初期化子(14.4)で開始し、いずれかを含みますローカル変数宣言ステートメントの右側の宣言子を追加します。
関連する問題
- 1. 新しいページからJavaセッション変数にアクセスできない
- 2. java do whileループが変数にアクセスできない
- 3. PHP内でアクセスできない変数
- 4. 変数にアクセスできない
- 5. 変数にアクセスできない
- 6. グローバル変数にアクセスできない
- 7. 配列変数にアクセスできない
- 8. インスタンス変数にアクセスできない
- 9. Java Swingエクササイズ - 変数にアクセスできない、理由を知らない
- 10. 部分変数でセッション変数にアクセスできない
- 11. Java-OOアクセス変数
- 12. Eclipseで同じプロジェクトのJavaクラスでGroovy変数にアクセスできない
- 13. はlaravel 5.2の定数変数にアクセスできない
- 14. cocos2d ccmenuitemは変数にアクセスできない、SIGABRTで終わる
- 15. なぜ角度変数でスコープ変数にアクセスできないのですか
- 16. UDPクライアントがJavaでアクセスできない
- 17. 関数内でグローバル変数にアクセスできない - jQuery/ajax
- 18. @ var.setter関数がクラス変数にアクセスできないのはなぜですか?
- 19. ASP.NET C#Global_asaxのApplication_Errorはセッション変数にアクセスできない
- 20. レンダーループはAssimp constシーン変数にアクセスできない
- 21. Javaで保護された変数にこのようにアクセスできないのはなぜですか?
- 22. なぜ "total_clients"変数にアクセスできないのですか?
- 23. なぜ静的変数にアクセスできないのですか?
- 24. 変換時にブロードキャスト変数にアクセスできない
- 25. Javaサーブレットにアクセスできない
- 26. javaプロジェクトのテキストファイルにアクセスできない
- 27. Java:メソッドにアクセスできない
- 28. コードバでグローバルなJS変数にアクセスできないのはなぜですか?
- 29. Jquery関数がグローバル変数にアクセスできない
- 30. C - ユーザー関数内のグローバル変数にアクセスできない
ありがとうございます!同期して盲目的に見て、私はその事実を完全に見落としました。 – Antiz