aspose file tools*
The moose likes Developer Certification (SCJD/OCMJD) and the fly likes Question about Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Certification » Developer Certification (SCJD/OCMJD)
Bookmark "Question about "null" intepretations" Watch "Question about "null" intepretations" New topic
Author

Question about "null" intepretations

Benjamin Ng
Greenhorn

Joined: Jul 12, 2012
Posts: 13
Hi people,

sorry i have a question which might be stupid but i want to clarify something. For my DB interface i have the following statement:

// Returns an array of record numbers that match the specified
// criteria. Field n in the database file is described by
// criteria[n]. A null value in criteria[n] matches any field
// value. A non-null value in criteria[n] matches any field
// value that begins with criteria[n]. (For example, "Fred"
// matches "Fred" or "Freddy".)
public int[] find(String[] criteria);

does a null value in can be null or "" or it only refers to null?
Roel De Nijs
Bartender

Joined: Jul 19, 2004
Posts: 5539
    
  13

null is null in my opinion. Empty is something completely different.


SCJA, SCJP (1.4 | 5.0 | 6.0), SCJD
http://www.javaroe.be/
Himai Minh
Ranch Hand

Joined: Jul 29, 2012
Posts: 799
    
    1
Benjamin,
Refer to Roberto Buddy's test. He uses String[] criteria = {"Palace", "Smallvile", null, null, null, null, null} to test his find algorithm. I believe our assignment should have null pointer exception handling in this case.
K. Tsang
Bartender

Joined: Sep 13, 2007
Posts: 2596
    
    9

Hi Benjamin

If you read the comments carefully you should have realized that "null" indicates a wildcard.


K. Tsang JavaRanch SCJP5 SCJD/OCM-JD OCPJP7 OCPWCD5 OCPBCD5
Benjamin Ng
Greenhorn

Joined: Jul 12, 2012
Posts: 13
thanks for the reply everyone. Now i doing junit testing on the find method for the Data.java and i need some clarification. If my criteria array is all empty value which means is {"","","","","",""}, what should the expected result for the find method? 0 records or all valid record in the database?
Himai Minh
Ranch Hand

Joined: Jul 29, 2012
Posts: 799
    
    1
0 records.
Because all records have their names and cities. Their names and cities are not "".
Benjamin Ng
Greenhorn

Joined: Jul 12, 2012
Posts: 13
Himai Minh wrote:0 records.
Because all records have their names and cities. Their names and cities are not "".


how about i pass in a String array of {null,null,"","","",""}, is the expected result still 0?
Roel De Nijs
Bartender

Joined: Jul 19, 2004
Posts: 5539
    
  13

In my find-method passing an array containing all null-values will result in all valid records being returned. If an array is passed with non-null values the null values are simply ignored.
Himai Minh
Ranch Hand

Joined: Jul 29, 2012
Posts: 799
    
    1
Benjamin Ng wrote:
Himai Minh wrote:0 records.
Because all records have their names and cities. Their names and cities are not "".


how about i pass in a String array of {null,null,"","","",""}, is the expected result still 0?


The expected result is all records. K Tsang buddy said null indicates a wildcard. The first "null" indicates all records with any name. The second null indicates all records with any city.

If you have a string array of {null, "New York", null, null, null, null}. The expected result is any name in New York city.
Benjamin Ng
Greenhorn

Joined: Jul 12, 2012
Posts: 13
Himai Minh wrote:
Benjamin Ng wrote:
Himai Minh wrote:0 records.
Because all records have their names and cities. Their names and cities are not "".


how about i pass in a String array of {null,null,"","","",""}, is the expected result still 0?


The expected result is all records. K Tsang buddy said null indicates a wildcard. The first "null" indicates all records with any name. The second null indicates all records with any city.

If you have a string array of {null, "New York", null, null, null, null}. The expected result is any name in New York city.


Sorry i am getting confused. Let me clarify something, based on my understanding, if i send a String array of {null,null,"","","",""}, shouldn't the expected result is 0 because even though both name and location are using null, but the rest of the search is not using wildcard so the check should be something like <is the rate begins with "">, <is the size begins with "">, <is the owner begins with ""> which for these cases they are not begin with "" so the final results is return 0 records?
Himai Minh
Ranch Hand

Joined: Jul 29, 2012
Posts: 799
    
    1
Hi Benjamin buddy,
Agree. This is confusing.
You may want to assume "" is a value. For example, name is "".
If the name criteria is "", search for names "".
If the name criteria is null, return all records with any name.

Agree with this ?
Benjamin Ng
Greenhorn

Joined: Jul 12, 2012
Posts: 13
Himai Minh wrote:Hi Benjamin buddy,
Agree. This is confusing.
You may want to assume "" is a value. For example, name is "".
If the name criteria is "", search for names "".
If the name criteria is null, return all records with any name.

Agree with this ?


Yes i agreed.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Question about "null" intepretations