第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

為什么我總是拋出 NullPointerException?

為什么我總是拋出 NullPointerException?

慕姐4208626 2023-11-01 17:02:36
我正在嘗試將活動(dòng)用戶信息加載到新活動(dòng)中并顯示它。我在不同的活動(dòng)中做過(guò)類似的事情,并且效果很好,但由于某種原因,情況并非如此,我不確定。每當(dāng) android studio 嘗試調(diào)用用戶的方法時(shí),它都會(huì)拋出 NullPointerException。我已經(jīng)嘗試了我能想到的一切,重新格式化其編寫(xiě)方式,嵌套在不同的方法中,以不同的方式將數(shù)據(jù)傳遞給它。沒(méi)有任何效果,我發(fā)現(xiàn)的關(guān)于該主題的每一篇文章都沒(méi)有任何幫助@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_user_edit);    int userID = getIntent().getIntExtra("sessionUser", 0);    tuckBoxDao = TuckBoxDB.createTuckBoxDB(this).tbDao();    Email = findViewById(R.id.email);    Username = findViewById(R.id.username);    Password = findViewById(R.id.password);    Mobile = findViewById(R.id.phoneNumber);    Notifications = findViewById(R.id.notificationBox);    Emails = findViewById(R.id.emailBox);    registerButton = findViewById(R.id.registerButton);    registerButton.setOnClickListener(new View.OnClickListener() {        @Override        public void onClick(View v) {            registerUser(user);        }    });    backButton = findViewById(R.id.backButton);    backButton.setOnClickListener(new View.OnClickListener() {        @Override        public void onClick(View v) {            goBack();        }    });    user = LoginActivity.tuckBoxDB.tbDao().searchById(userID);    String username = user.getUsername();    Username.setText(username);    String email = user.getEmail();    Email.setHint(email);    String mobile = user.getMobile();    Mobile.setHint(mobile);    Boolean notifications = user.getNotifications();    Notifications.setChecked(notifications);    Boolean emails = user.getEmails();    Emails.setChecked(emails);}我本來(lái)希望它能正常工作并更新并顯示正確的信息,因?yàn)樗谖抑爸谱鞯钠沃型耆龅搅诉@一點(diǎn),但由于某種原因它一到達(dá) user.getUsername(); 就拋出異常
查看完整描述

3 回答

?
守候你守候我

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超10個(gè)贊

用戶為空。檢查 null 如下


if(user != null){

String username = user.getUsername();

Username.setText(username);

String email = user.getEmail();

Email.setHint(email);

String mobile = user.getMobile();

Mobile.setHint(mobile);

Boolean notifications = user.getNotifications();

Notifications.setChecked(notifications);

Boolean emails = user.getEmails();

Emails.setChecked(emails);

}


查看完整回答
反對(duì) 回復(fù) 2023-11-01
?
喵喵時(shí)光機(jī)

TA貢獻(xiàn)1846條經(jīng)驗(yàn) 獲得超7個(gè)贊

NullPointerException 原因是,如果您在 null 對(duì)象上調(diào)用任何方法,那么它肯定會(huì)拋出此異常。

直接調(diào)用在運(yùn)行時(shí)獲取的對(duì)象上的方法是不正確的編碼實(shí)踐,除非您 100% 確定存在某個(gè)對(duì)象,即使該對(duì)象為空。因此,只有 NullPointerException 是未經(jīng)檢查的異常。

回答你的問(wèn)題,

請(qǐng)確認(rèn)您獲得了正確的 userId 并且該 userId 是否存在于數(shù)據(jù)庫(kù)中。

searchById(userId),

無(wú)法找到具有給定 userId 的對(duì)象,因此它會(huì)返回。您只需要在調(diào)用用戶方法之前進(jìn)行空檢查

if(user!=null)

如果值高于條件為真,則執(zhí)行操作,但這取決于您的業(yè)務(wù)需求。上述條件只會(huì)使您免于此異常,但如果在任何情況下您需要用戶對(duì)象,請(qǐng)檢查您正在獲取的 userId 及其在數(shù)據(jù)庫(kù)中的存在。

你正在檢索


查看完整回答
反對(duì) 回復(fù) 2023-11-01
?
九州編程

TA貢獻(xiàn)1785條經(jīng)驗(yàn) 獲得超4個(gè)贊

當(dāng)您看到此錯(cuò)誤時(shí),用戶為空,因此您必須在調(diào)試模式下檢查一些內(nèi)容:

1.可能這個(gè)功能有一些bug:

LoginActivity.tuckBoxDB.tbDao().searchById(userID);
  1. 也許這個(gè)函數(shù)找不到 int extra 。檢查啟動(dòng)活動(dòng)是否通過(guò)了此額外操作,并檢查您的密鑰(sessionUser)是否在兩者中相同:

    getIntent().getIntExtra("sessionUser", 0)


查看完整回答
反對(duì) 回復(fù) 2023-11-01
  • 3 回答
  • 0 關(guān)注
  • 141 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)