Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. Other Discussions
  3. The Weird and The Wonderful
  4. What is null equal to?

What is null equal to?

Scheduled Pinned Locked Moved The Weird and The Wonderful
question
23 Posts 16 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S Offline
    S Offline
    sloosecannon
    wrote on last edited by
    #1

    I come before you with a question, a yearning in my heart. What is null..... Equal to?

    ...
    if (value == null || value.equals(null)) {
    return "null";
    }
    ...

    Evidently, the concept of "null" and "null pointers" and "null pointer calls" is lost on the guys who wrote this particular line of code. It doesn't make any errors, probably because someone added the first condition after a few NPEs happened... EDIT: Clarification - the title is rhetorical.

    P A V J C 7 Replies Last reply
    0
    • S sloosecannon

      I come before you with a question, a yearning in my heart. What is null..... Equal to?

      ...
      if (value == null || value.equals(null)) {
      return "null";
      }
      ...

      Evidently, the concept of "null" and "null pointers" and "null pointer calls" is lost on the guys who wrote this particular line of code. It doesn't make any errors, probably because someone added the first condition after a few NPEs happened... EDIT: Clarification - the title is rhetorical.

      P Offline
      P Offline
      PIEBALDconsult
      wrote on last edited by
      #2

      What is the sound of two nulls equating?

      R 1 Reply Last reply
      0
      • P PIEBALDconsult

        What is the sound of two nulls equating?

        R Offline
        R Offline
        R Giskard Reventlov
        wrote on last edited by
        #3

        Silence from Lorrha [^] [Update} Well, that's pretty useless: the audio track doesn't work. :mad: Or maybe that's the point: literally the sound of nothing at all: null in the truest sense. :)

        1 Reply Last reply
        0
        • S sloosecannon

          I come before you with a question, a yearning in my heart. What is null..... Equal to?

          ...
          if (value == null || value.equals(null)) {
          return "null";
          }
          ...

          Evidently, the concept of "null" and "null pointers" and "null pointer calls" is lost on the guys who wrote this particular line of code. It doesn't make any errors, probably because someone added the first condition after a few NPEs happened... EDIT: Clarification - the title is rhetorical.

          A Offline
          A Offline
          Afzaal Ahmad Zeeshan
          wrote on last edited by
          #4

          In programming a null object means that this doesn't exist in the memory. For example,

          int i;

          if(i == null) {
          MessageBox.Show("Yes, Null!");
          } else {
          MessageBox.Show("No, value was added somewhere in the code stack");
          }

          This, would execute if there is no value in i, or the i was never initialized. The code that you're having is something like this

          // if the variable of value is not initialized
          // or contains nothing, does not exist in memory
          // .equals(null) is a string method, to check string value
          // and has same functionality
          if (value == null || value.equals(null)) {
          // then return a string that is NOT null but contains "null"
          return "null";
          }

          The method signature would be like,

          public string Function1 () {
          // returns a string
          }

          Favourite line: Throw me to them wolves and close the gate up. I am afraid of what will happen to them wolves - Eminem ~! Firewall !~

          S OriginalGriffO P V 4 Replies Last reply
          0
          • A Afzaal Ahmad Zeeshan

            In programming a null object means that this doesn't exist in the memory. For example,

            int i;

            if(i == null) {
            MessageBox.Show("Yes, Null!");
            } else {
            MessageBox.Show("No, value was added somewhere in the code stack");
            }

            This, would execute if there is no value in i, or the i was never initialized. The code that you're having is something like this

            // if the variable of value is not initialized
            // or contains nothing, does not exist in memory
            // .equals(null) is a string method, to check string value
            // and has same functionality
            if (value == null || value.equals(null)) {
            // then return a string that is NOT null but contains "null"
            return "null";
            }

            The method signature would be like,

            public string Function1 () {
            // returns a string
            }

            Favourite line: Throw me to them wolves and close the gate up. I am afraid of what will happen to them wolves - Eminem ~! Firewall !~

            S Offline
            S Offline
            sloosecannon
            wrote on last edited by
            #5

            I understand the concept of null, however, evidently "those who came before" didn't... Hence why I'm posting this here ;)

            1 Reply Last reply
            0
            • A Afzaal Ahmad Zeeshan

              In programming a null object means that this doesn't exist in the memory. For example,

              int i;

              if(i == null) {
              MessageBox.Show("Yes, Null!");
              } else {
              MessageBox.Show("No, value was added somewhere in the code stack");
              }

              This, would execute if there is no value in i, or the i was never initialized. The code that you're having is something like this

              // if the variable of value is not initialized
              // or contains nothing, does not exist in memory
              // .equals(null) is a string method, to check string value
              // and has same functionality
              if (value == null || value.equals(null)) {
              // then return a string that is NOT null but contains "null"
              return "null";
              }

              The method signature would be like,

              public string Function1 () {
              // returns a string
              }

              Favourite line: Throw me to them wolves and close the gate up. I am afraid of what will happen to them wolves - Eminem ~! Firewall !~

              OriginalGriffO Offline
              OriginalGriffO Offline
              OriginalGriff
              wrote on last edited by
              #6

              See the text at the top of the page: "a place to post Coding Horrors, Worst Practices, and the occasional flash of brilliance." Nearly everything here is found in real code and will hopefully make you go :doh: :WTF: :OMG: And laugh that anyone could think that the right thing to do... Generally, explanations and code fragment after the original are expected to make even less sense: just to prove it can be done! :laugh: For example, another way to do the original method would be

              public object IsNull(object o)
              {
              try
              {
              return o.Equals(null) ? o : o;
              }
              catch
              {
              return null;
              }
              }

              But you'd have to be a complete moron to write that! Oops. I just did... :-O

              You looking for sympathy? You'll find it in the dictionary, between sympathomimetic and sympatric (Page 1788, if it helps)

              "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
              "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt

              B S R 4 Replies Last reply
              0
              • A Afzaal Ahmad Zeeshan

                In programming a null object means that this doesn't exist in the memory. For example,

                int i;

                if(i == null) {
                MessageBox.Show("Yes, Null!");
                } else {
                MessageBox.Show("No, value was added somewhere in the code stack");
                }

                This, would execute if there is no value in i, or the i was never initialized. The code that you're having is something like this

                // if the variable of value is not initialized
                // or contains nothing, does not exist in memory
                // .equals(null) is a string method, to check string value
                // and has same functionality
                if (value == null || value.equals(null)) {
                // then return a string that is NOT null but contains "null"
                return "null";
                }

                The method signature would be like,

                public string Function1 () {
                // returns a string
                }

                Favourite line: Throw me to them wolves and close the gate up. I am afraid of what will happen to them wolves - Eminem ~! Firewall !~

                P Offline
                P Offline
                Paulo Zemek
                wrote on last edited by
                #7

                The problem is not the result of "null", the problem is the value.equals(null). The first part of the if is right (value == null). The second is wrong and it would actually never execute when the value is null (and when it does execute, value will not be null, avoiding an exception).

                1 Reply Last reply
                0
                • OriginalGriffO OriginalGriff

                  See the text at the top of the page: "a place to post Coding Horrors, Worst Practices, and the occasional flash of brilliance." Nearly everything here is found in real code and will hopefully make you go :doh: :WTF: :OMG: And laugh that anyone could think that the right thing to do... Generally, explanations and code fragment after the original are expected to make even less sense: just to prove it can be done! :laugh: For example, another way to do the original method would be

                  public object IsNull(object o)
                  {
                  try
                  {
                  return o.Equals(null) ? o : o;
                  }
                  catch
                  {
                  return null;
                  }
                  }

                  But you'd have to be a complete moron to write that! Oops. I just did... :-O

                  You looking for sympathy? You'll find it in the dictionary, between sympathomimetic and sympatric (Page 1788, if it helps)

                  B Offline
                  B Offline
                  Brisingr Aerowing
                  wrote on last edited by
                  #8

                  OriginalGriff wrote:

                  But you'd have to be a complete moron to write that!, and think that it is good code! Oops. I just did... :O

                  FTFY!

                  What do you get when you cross a joke with a rhetorical question? --- The metaphorical solid rear-end expulsions have impacted the metaphorical motorized bladed rotating air movement mechanism.

                  1 Reply Last reply
                  0
                  • OriginalGriffO OriginalGriff

                    See the text at the top of the page: "a place to post Coding Horrors, Worst Practices, and the occasional flash of brilliance." Nearly everything here is found in real code and will hopefully make you go :doh: :WTF: :OMG: And laugh that anyone could think that the right thing to do... Generally, explanations and code fragment after the original are expected to make even less sense: just to prove it can be done! :laugh: For example, another way to do the original method would be

                    public object IsNull(object o)
                    {
                    try
                    {
                    return o.Equals(null) ? o : o;
                    }
                    catch
                    {
                    return null;
                    }
                    }

                    But you'd have to be a complete moron to write that! Oops. I just did... :-O

                    You looking for sympathy? You'll find it in the dictionary, between sympathomimetic and sympatric (Page 1788, if it helps)

                    S Offline
                    S Offline
                    sloosecannon
                    wrote on last edited by
                    #9

                    Mmmh, yeah, there's stuff like that in there too. I'll have to see if I can anonymize it enough to be internet postable. Let's just say someone did not understand object oriented coding and how Java works. We got to use this library before we actually took over developing it as contractors, and all the problems we had with it before are starting to make sense now...

                    1 Reply Last reply
                    0
                    • A Afzaal Ahmad Zeeshan

                      In programming a null object means that this doesn't exist in the memory. For example,

                      int i;

                      if(i == null) {
                      MessageBox.Show("Yes, Null!");
                      } else {
                      MessageBox.Show("No, value was added somewhere in the code stack");
                      }

                      This, would execute if there is no value in i, or the i was never initialized. The code that you're having is something like this

                      // if the variable of value is not initialized
                      // or contains nothing, does not exist in memory
                      // .equals(null) is a string method, to check string value
                      // and has same functionality
                      if (value == null || value.equals(null)) {
                      // then return a string that is NOT null but contains "null"
                      return "null";
                      }

                      The method signature would be like,

                      public string Function1 () {
                      // returns a string
                      }

                      Favourite line: Throw me to them wolves and close the gate up. I am afraid of what will happen to them wolves - Eminem ~! Firewall !~

                      V Offline
                      V Offline
                      V 0
                      wrote on last edited by
                      #10

                      euhm, isn't

                      int i;

                      never null (it can't be null, that's where int? i is for ;-)) (in C# that is) (just double checked, you cannot even compile if not initialized, in the immediate window it initialized to 0)

                      V.
                      (MQOTD rules and previous solutions)

                      1 Reply Last reply
                      0
                      • S sloosecannon

                        I come before you with a question, a yearning in my heart. What is null..... Equal to?

                        ...
                        if (value == null || value.equals(null)) {
                        return "null";
                        }
                        ...

                        Evidently, the concept of "null" and "null pointers" and "null pointer calls" is lost on the guys who wrote this particular line of code. It doesn't make any errors, probably because someone added the first condition after a few NPEs happened... EDIT: Clarification - the title is rhetorical.

                        V Offline
                        V Offline
                        Vark111
                        wrote on last edited by
                        #11

                        Well, clearly they didn't apply the proper Yoda-ordered syntax in the if statement. Should have read thus:

                        if (null == value || (null).equals(value)) {

                        S 1 Reply Last reply
                        0
                        • S sloosecannon

                          I come before you with a question, a yearning in my heart. What is null..... Equal to?

                          ...
                          if (value == null || value.equals(null)) {
                          return "null";
                          }
                          ...

                          Evidently, the concept of "null" and "null pointers" and "null pointer calls" is lost on the guys who wrote this particular line of code. It doesn't make any errors, probably because someone added the first condition after a few NPEs happened... EDIT: Clarification - the title is rhetorical.

                          J Offline
                          J Offline
                          jeron1
                          wrote on last edited by
                          #12

                          sloosecannon wrote:

                          What is null..... Equal to?

                          Don't know, I'm having difficulty getting past the brace placement.

                          "the debugger doesn't tell me anything because this code compiles just fine" - random QA comment "Facebook is where you tell lies to your friends. Twitter is where you tell the truth to strangers." - chriselst

                          S R 2 Replies Last reply
                          0
                          • J jeron1

                            sloosecannon wrote:

                            What is null..... Equal to?

                            Don't know, I'm having difficulty getting past the brace placement.

                            "the debugger doesn't tell me anything because this code compiles just fine" - random QA comment "Facebook is where you tell lies to your friends. Twitter is where you tell the truth to strangers." - chriselst

                            S Offline
                            S Offline
                            sloosecannon
                            wrote on last edited by
                            #13

                            Eh, not my choice. Code style rules...

                            1 Reply Last reply
                            0
                            • V Vark111

                              Well, clearly they didn't apply the proper Yoda-ordered syntax in the if statement. Should have read thus:

                              if (null == value || (null).equals(value)) {

                              S Offline
                              S Offline
                              sloosecannon
                              wrote on last edited by
                              #14

                              Which can be simplified to

                              if (null==value)
                              {
                              throw new NullPointerException();//It was null, we don't like their kind here
                              }
                              else
                              {
                              //Do something
                              }

                              L 1 Reply Last reply
                              0
                              • OriginalGriffO OriginalGriff

                                See the text at the top of the page: "a place to post Coding Horrors, Worst Practices, and the occasional flash of brilliance." Nearly everything here is found in real code and will hopefully make you go :doh: :WTF: :OMG: And laugh that anyone could think that the right thing to do... Generally, explanations and code fragment after the original are expected to make even less sense: just to prove it can be done! :laugh: For example, another way to do the original method would be

                                public object IsNull(object o)
                                {
                                try
                                {
                                return o.Equals(null) ? o : o;
                                }
                                catch
                                {
                                return null;
                                }
                                }

                                But you'd have to be a complete moron to write that! Oops. I just did... :-O

                                You looking for sympathy? You'll find it in the dictionary, between sympathomimetic and sympatric (Page 1788, if it helps)

                                R Offline
                                R Offline
                                Rob Grainger
                                wrote on last edited by
                                #15

                                OriginalGriff wrote:

                                But you'd have to be a complete moron to write that!

                                Q.E.D. (Sorry too easy)

                                "If you don't fail at least 90 percent of the time, you're not aiming high enough." Alan Kay.

                                1 Reply Last reply
                                0
                                • J jeron1

                                  sloosecannon wrote:

                                  What is null..... Equal to?

                                  Don't know, I'm having difficulty getting past the brace placement.

                                  "the debugger doesn't tell me anything because this code compiles just fine" - random QA comment "Facebook is where you tell lies to your friends. Twitter is where you tell the truth to strangers." - chriselst

                                  R Offline
                                  R Offline
                                  Rob Grainger
                                  wrote on last edited by
                                  #16

                                  Nothing wrong with that. It's very common. K&R Style[^]

                                  "If you don't fail at least 90 percent of the time, you're not aiming high enough." Alan Kay.

                                  1 Reply Last reply
                                  0
                                  • S sloosecannon

                                    Which can be simplified to

                                    if (null==value)
                                    {
                                    throw new NullPointerException();//It was null, we don't like their kind here
                                    }
                                    else
                                    {
                                    //Do something
                                    }

                                    L Offline
                                    L Offline
                                    Lost User
                                    wrote on last edited by
                                    #17

                                    If it was VB, yes, but not in C#. If it is null, the second part will not be evaluated. It's effectively a dead condition. So, it won't blow up - thanks to this oversight. I vaguely remember a manager who claimed that we always should use ".equals" for comparisons, and that it was a best practice. Using the operator is not only more readable, it also does not depend on the object having a value.

                                    Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^]

                                    S Richard DeemingR 2 Replies Last reply
                                    0
                                    • L Lost User

                                      If it was VB, yes, but not in C#. If it is null, the second part will not be evaluated. It's effectively a dead condition. So, it won't blow up - thanks to this oversight. I vaguely remember a manager who claimed that we always should use ".equals" for comparisons, and that it was a best practice. Using the operator is not only more readable, it also does not depend on the object having a value.

                                      Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^]

                                      S Offline
                                      S Offline
                                      sloosecannon
                                      wrote on last edited by
                                      #18

                                      Woops, logic derp. Yep, you're right. The code is Java for context, but it does lazy logic evaluation too...

                                      1 Reply Last reply
                                      0
                                      • L Lost User

                                        If it was VB, yes, but not in C#. If it is null, the second part will not be evaluated. It's effectively a dead condition. So, it won't blow up - thanks to this oversight. I vaguely remember a manager who claimed that we always should use ".equals" for comparisons, and that it was a best practice. Using the operator is not only more readable, it also does not depend on the object having a value.

                                        Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^]

                                        Richard DeemingR Offline
                                        Richard DeemingR Offline
                                        Richard Deeming
                                        wrote on last edited by
                                        #19

                                        Taking the code from Vark111's post, and assuming C#:

                                        if (null == value || (null).Equals(value)) {

                                        If value isn't null, the second part will be evaluated. Since the second part tries to call the Equals method on a null reference, it would throw a NullReferenceException. :doh: Thankfully, the C# compiler is smart enough to prevent you from compiling this code - you'll get an "Operator '.' cannot be applied to operand of type '<null>'" compiler error.


                                        "These people looked deep within my soul and assigned me a number based on the order in which I joined." - Homer

                                        "These people looked deep within my soul and assigned me a number based on the order in which I joined" - Homer

                                        1 Reply Last reply
                                        0
                                        • S sloosecannon

                                          I come before you with a question, a yearning in my heart. What is null..... Equal to?

                                          ...
                                          if (value == null || value.equals(null)) {
                                          return "null";
                                          }
                                          ...

                                          Evidently, the concept of "null" and "null pointers" and "null pointer calls" is lost on the guys who wrote this particular line of code. It doesn't make any errors, probably because someone added the first condition after a few NPEs happened... EDIT: Clarification - the title is rhetorical.

                                          C Offline
                                          C Offline
                                          ColborneGreg
                                          wrote on last edited by
                                          #20

                                          Empty memory is a variable that is declared without a value Null memory is a variable that does not have a memory location Same goes with null from files.

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups