2016-08-21 4 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-кодирования. Имена классов начинаются с верхнего регистра. И как говорит Хадар: попробуйте использовать уникальные имена. И: используйте имена, которые говорят что-то о предполагаемом использовании вещи за ней. «bucky» ничего не говорит; что было бы неправильно с таким именем, как «scannerForUserInput» – GhostCat

+0

Очень сомневаюсь, что есть такое сообщение «во время работы». Пожалуйста, дайте понять, какие ошибки вы получаете и когда. –

+0

А каково отношение с тегом "неоновый"? («NEON - это набор инструкций по векторной обработке для процессоров ARM».) - Я собираюсь удалить этот тег. –

ответ

1

Название вашего класса и имя переменной (сканера) совпадают (bucky). Попробуйте изменить один из них

+0

Хотя не рекомендуется, чтобы имя переменной было таким же, как имя класса, не является ошибкой. –

1

Это говорит преобразования локальной переменной в поле @ Баки

Это только предложение по IDE. В основном бессмысленно для вашего простого кода.

утечка ресурсов. bucky никогда не закрывается.

Хотя правильно, то есть утечка ресурсов, что bucky.close() никогда не вызывается, вы действительно не нужен здесь, и часто подвержены ошибкам, чтобы закрыть стандартный ввод-Scanner.

И да, вы должны изменить свое имя класса к чему-то более описательное и CamelCased

1

его хорошая практика, чтобы начать имена классов с прописными буквами. Как отметил @Hadar, проблема в том, что имя вашего класса совпадает с именем переменной. Также никогда не забывайте закрыть импорт сканера. Вы также можете узнать о попытках блокировки, чтобы избежать утечки ресурсов.

+0

Как это проблема? Код работает нормально. –

+0

Это не проблема на самом деле. Но лучше не называть их так, чтобы избежать путаницы –