gpt4 book ai didi

java - Getter 和 Setter 不起作用?

转载 作者:行者123 更新时间:2023-11-29 09:49:22 25 4
gpt4 key购买 nike

我现在有两个类: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);
}

}

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);

}

}

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

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

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

最佳答案

这里:

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

您应该改用 reminderID = id

还有:

public void onCreate(Bundle SavedInstance) {

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

}

无需两次设置reminderId

关于java - Getter 和 Setter 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12593490/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com