は、コードのこの作品は、コンパイルされません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. インスタンス変数にアクセスできない
- 2. Java Swingエクササイズ - 変数にアクセスできない、理由を知らない
- 3. Eclipseで同じプロジェクトのJavaクラスでGroovy変数にアクセスできない
- 4. cocos2d ccmenuitemは変数にアクセスできない、SIGABRTで終わる
- 5. ASP.NET C#Global_asaxのApplication_Errorはセッション変数にアクセスできない
- 6. UDPクライアントがJavaでアクセスできない
- 7. C - ユーザー関数内のグローバル変数にアクセスできない
- 8. 異なるサーバー上のセッション変数にアクセスできない
- 9. Javaサーブレットにアクセスできない
- 10. javaプロジェクトのテキストファイルにアクセスできない
- 11. QT Creatorでローカル変数と式の変数にアクセスできない
- 12. Java 1.4でWindowsシステム変数にアクセス
- 13. Rubyブロックがローカルスコープ変数にアクセスできないようです
- 14. PHPの文で$ _POST変数にアクセスできない
- 15. スクリプト内でセッション変数にアクセスできない
- 16. MediaWikiのjQuery.ajaxコールでグローバルPHP変数にアクセスできない
- 17. コントローラからNSAppグローバル変数にアクセスできないのはなぜですか?
- 18. 関連モデルの変数にアクセスできない
- 19. Pythonの親メンバー変数にアクセスできない
- 20. 非同期タスクから変数にアクセスできない
- 21. コンパニオンオブジェクトがクラスのプライベート変数にアクセスできない
- 22. 同じファイルのメソッド変数にアクセスできない
- 23. 子クラスのQMainWindow変数にアクセスできない
- 24. HTMLからスコープ変数にアクセスできない
- 25. Express/NodeJSのreq.session変数にアクセスできない
- 26. javaのリモートデータベースにアクセスするにはssh経由でしかアクセスできない
- 27. 「安全でない」JavaメソッドにアクセスできないJava表現言語
- 28. R- dr.fit()関数にアクセスできない
- 29. Javaインタフェースを実装するクラスで宣言された変数にScalaからアクセスできないのはなぜですか? Javaでは
- 30. Javaオプションは変更できないのはなぜですか?
ありがとうございます!同期して盲目的に見て、私はその事実を完全に見落としました。 – Antiz