2014-01-11 69 views
-3

这是我声明变量和get和set方法的地方。所有人都在同一班。无法对静态方法进行静态引用

public class Users 
{ 
    private String username; 

    public void setUsername(String username) 
    { 
    this.username = username; 
    } 

    public String getUsername() 
    { 
    return username; 
    } 

    public static ArrayList<Users> getAllContacts(String f) { 

    Users Contact; 
    ArrayList<Users> ContactList = new ArrayList<Users>(); 
    String query = "select * from UsersDB where username = ?"; 
    // connect to DB 
    currentCon = DBController.getConnection1(); 

    try { 
     pstmt = currentCon.prepareStatement(query); 

这是它不能静态引用非静态方法的部分,它在同一个类中。

pstmt.setString(1, getUsername()); // Cannot make a static reference to the non-static method 
     rs = pstmt.executeQuery(); 
     while (rs.next()) { 
      int id = rs.getInt("id"); 
      String name = rs.getString("name"); 
      int mobile = rs.getInt("phone_Number"); 
      String gender = rs.getString("gender"); 
      String email = rs.getString("email"); 
      String birth = rs.getString("birthDate"); 

      Contact = new Users(name, email, gender, mobile, birth); 
      ContactList.add(Contact); 
     } 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    return ContactList; 
} 

} 
+1

在所有相关问题上向右看。 –

+0

我相信错误信息告诉你你需要知道的一切。 –

+1

当您输入问题标题时,弹出几个问题;它是这样做的,因为许多问题已经在SO上被询问和回答。 –

回答

0

您需要从实际的Users对象中调用getUsername()方法。可能你的意思是说Contact.getUsername()

相关问题