[英]Getting error while using .nextInt()
我收到此錯誤: “每次我嘗試使用.nextInt()
執行一行代碼時, ”無法對非靜態字段進行靜態引用“ 。
以下是可能影響的代碼行(我能想到):
private Scanner input = new Scanner(System.in);
int priceLocation = input.nextInt();
這很可能是因為你試圖在靜態方法中訪問input
,我假設它是main()
方法。 像這樣的東西
private Scanner input = new Scanner(System.in);
public static void main(String[] args) {
int priceLocation = input.nextInt(); // This is not allowed as input is not static
您需要將input
為static
或者可以將其移動到static
( 主 )方法中。
解決方案1:將input
設為static
。
private static Scanner input = new Scanner(System.in);
public static void main(String[] args) {
int priceLocation = input.nextInt();
解決方案2:將input
移動到main中(注意,如果它在main()
移動,則不能在任何其他方法中使用input
,因為它將是本地的)。
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int priceLocation = input.nextInt();
private Scanner input = new Scanner(System.in); // make this static
如果您在靜態方法中訪問此內容。 你必須使input
靜態。
private static Scanner input = new Scanner(System.in);
public static void main(String[] args) {
int priceLocation = input.nextInt();
// without static you will get that error.
}
這是因為您定義輸入的方式
private Scanner input = new Scanner(System.in); // notice private
int priceLocation = input.nextInt();
私有變量在類中定義,外部方法如
class myclass{
private Scanner input = new Scanner(System.in);
void methodname(){
int priceLocation = input.nextInt();
}
}
或者,如果要在方法內定義輸入
class myclass{
void methodname(){
Scanner input = new Scanner(System.in); // you can make this a final variable if you want
int priceLocation = input.nextInt();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.