對於返回值型別不確定的函式如何限定返回值型別

weixin_34232744發表於2017-09-10

情景描述

  • 寫了一個controller function,想要使用他來處理獲取某一條記錄的功能。
  • 但是困在了返回值型別,因為我們會處理,當要尋找的記錄不存在返回一種物件,當記錄存在返回記錄物件。
  • 我不知道我應該設定什麼型別的返回值

矛盾點

  • 如果我想要返回值型別是記錄類,那麼我該如何處理找不到記錄時候的返回物件呢?

解決

  • Q1:函式返回的是物件還是引用?

  • A1:

    • 當函式的引數是一個物件的時候,我們很清楚傳進來的只是一個引用。
    • 當函式的返回一個非基本型別資料的時候,返回的也是引用。
  • Q2:引用的值可以是什麼?

  • A2:可以是兩種:

    • 對應物件的地址
    • null
  • Q3:那麼問題的解決?

  • A3: 根據上面兩個問題我們可以知道,既然返回的是物件,物件包含兩種數值。因此我就可以當不存在記錄的時候返回null。存在記錄的時候返回記錄物件的引用

結論

  • 寫完後發現自己傻了,java中除了基本型別,你能使用的不是都是引用嗎?就算是用建構函式構造出的物件返回的都是引用。所以就可以順利的解釋我可以返回null。

反思

  • 先定論再找依據,費時間過多。花了大把的時間論證自己的結論是對的,說不定其實你的結論是錯的

ACTION

  • 先下結論還是可以的,但是一個結論如果通過搜尋五分鐘內找不到想要的結果,不能再費時間,直接尋找問題的解答。
  • 或者先到網上找到問題的解答,然後對解答提出疑惑,補充知識

相關文章