2016-08-21 7 views
-2

私のコードは次のとおりです。のJava 1.8スキャナ輸入

package apple; 

import java.util.Scanner; 

class bucky { 
    public static void main(String args[]) { 
     Scanner bucky = new Scanner(System.in); 
     System.out.println(bucky.nextLine()); 
    } 
} 

実行しているが、それは「フィールド@バッキーにローカル変数を変換する」と言います。
リソースリーク:buckyは決して閉じません。

+1

ヒント:Javaコーディングスタイルのガイドを読んでください。クラス名は大文字で始まります。そしてHadarが言うように:一意の名前を使用しようとする。そして:それの背後にあるものの意図された使用について何かを言う名前を使用してください。 「バッキー」は何も言わない。 "scannerForUserInput"のような名前で何が間違っているか – GhostCat

+0

「実行中」のようなメッセージがあることは非常に疑問です。どのようなエラーが発生したのか、どのようなエラーが発生したのかを明確にしてください –

+0

タグ「ネオン」との関係は? ( "NEONはARMプロセッサ用のベクトル処理命令セットです。") - そのタグを削除します。 –

答えて

1

あなたのクラス名と変数(スキャナ)の名前は同じです(bucky)。そのうちの一つ

+0

クラス名と同じ変数名はエラーではありませんが、お勧めしませんが、 –

1

を変更しようとすることは、フィールドIDEによってのみ提案である@バッキー

をするローカル変数を変換すると言います。あなたの単純なコードにはほとんど無意味です。

リソースリーク。バッキーは決して閉じない。

は正しいが、それはあなたが本当にここにそれを必要としない、bucky.close()が呼び出されないことをリソースリークであり、それは多くの場合、エラーが発生しやすい標準入力Scannerを閉じることがあります。

そして、はい、あなたはより説明的なものとCamelCased

1

その大文字とクラス名を開始するには良い練習に自分のクラス名を変更する必要があります。 @Hadarが指摘したように、問題はクラス名が変数nameと同じであることです。また、Scannerのインポートを閉じることを決して忘れないでください。リソースリークを避けるためにtry-withブロックについて学ぶこともできます

+0

これはどのように「問題」ですか?コードは正常に動作します。 –

+0

それは実際には問題ではありませんが、混乱を避けるためにそのような名前を付けないのが最善です –