Getter和Setters不工作?

New*_*Dev 1 java android getter-setter

我现在有两个班:RemindersDAO.java和ViewLocalReminders.java.

我正在尝试访问ViewLocalReminders.java中的变量,我试图从RemindersDAO.java中调用它.我是通过使用getter/setter方法组合来做到这一点的.但是,由于某种原因,我的变量值在getter方法中始终设置为0.这是代码:

ViewLocalReminders.java

public class ViewLocalReminders extends SherlockListActivity {

private long reminderID;

    public void onCreate(Bundle SavedInstance) {

    reminderID = 16;
    setReminderID(reminderID);      

    }

    public void setReminderID(long id) {
        id = reminderID;
        System.out.println("Reminder ID Value in Setter: " + reminderID);
    }

    public long getReminderID() {
        return reminderID;
        System.out.println("Reminder ID Value in Getter: " + reminderID);
    }

}
Run Code Online (Sandbox Code Playgroud)

RemindersDAO.java

public class RemindersDAO extends SQLiteOpenHelper {

    @SuppressWarnings("deprecation")
    public Cursor getRowByID(Activity activity) {
    String[] from = { _ID, NAME };

    ViewLocalReminders viewLocalReminders = new ViewLocalReminders();
    long reminderID = viewLocalReminders.getReminderID();
    System.out.println("Value of Reminder ID in RemindersDAO: " + reminderID);

    }

}
Run Code Online (Sandbox Code Playgroud)

这是我为所有System.out.printlns获取的输出:

  1. Setter中的提醒ID值:16
  2. Getter中的提醒ID值:0
  3. RemindersDAO中的提醒ID值:0

显然,在setter和getter方法之间发生了一些事情.在setter方法中,reminderID的值是16,应该是这样.但是,getter方法中的值为0.因此,当我在RemindersDAO.java中调用getter方法时,该值仍为0.我在这做错了什么?谢谢你的帮助!:)

Maj*_*ssi 7

这里:

public void setReminderID(long id) {
    id = reminderID;  //<-- wrong, should be the other way around
    System.out.println("Reminder ID Value in Setter: " + reminderID);
}
Run Code Online (Sandbox Code Playgroud)

您应该使用reminderID = id,而不是

也:

public void onCreate(Bundle SavedInstance) {

    reminderID = 16;           //one of these two lines..
    setReminderID(reminderID); //..should do it      

}
Run Code Online (Sandbox Code Playgroud)

无需设置reminderId两次