2013-05-12 66 views
0

所以,当过我尝试编译这段代码,我得到:屏蔽从控制台输入密码,“无法解析符号‘控制台’”

的java:找不到符号 符号:类控制台 位置:级Java .lang.System

我不明白为什么当我启动控制台对象,System.console()不能得到解决......

import java.io.Console; 
import java.util.Arrays; 
import java.util.Scanner; 


public class User { 
    Scanner input = new Scanner(System.in); 
    Console console = new System.console(); 

    private String userID, userPW, userPIN; 
    private char[] password = new char[6]; 


    public String getUserID() { 
     return userID; 
    } 

    public void setUserID(String userID) { 
     this.userID = userID; 
    } 

    public String getUserPW() { 
     return userPW; 
    } 

    public void setUserPW(String userPW) { 
     this.userPW = userPW; 
    } 

    public String getUserPIN() { 
     return userPIN; 
    } 

    public void setUserPIN(String userPIN) { 
     this.userPIN = userPIN; 
    } 

public void setUserInfo() { 
     System.out.print("Please enter your User ID : "); 
     this.setUserID(input.nextLine()); 

     System.out.print("Please enter your Password: "); 
     this.setUserPW(input.nextLine()); 

     this.password = console.readPassword("Enter password"); 
     Arrays.fill(this.password, '*'); 
    } 

回答

13

这不是

Console console = new System.console(); 

应该

Console console = System.console(); 
+0

哇......我盯着这个好一个小时。非常感谢! – MK3GTX 2013-05-12 07:13:37

4

您尝试使用系统类,其中控制台()方法是静态的,所以没有必要把新的关键字System.console前()来访问控制台,只要删除新的关键字。