- 论坛徽章:
- 0
|
If a method returns an array which can be empty, do not allow it to
return null. Instead, return a zero-length array.
This simplifies the client, since they never have to check for null
values.
Example
import java.util.*;
public class StockPortfolio {
//..elided
/**
* A field is implemented internally as a Collection,
* but offered to the user of this class as an Array.
* This array is never null, even if the underlying Collection is
* empty.
*/
public String[] getStocks() {
/*
NO_STOCKS plays a double role here. If there are elements in fStocks, then
toArray will allocate a new array, using NO_STOCKS simply as an indicator
of the proper type to use. If fStocks has no elements at all, then toArray
will simply return the NO_STOCKS array itself.
*/
return (String[]) fStocks.toArray(NO_STOCKS);
}
// PRIVATE //
/** The underlying collection. */
private List fStocks;
/** A constant, empty array, to be used instead of a null array. */
private static final String[] NO_STOCKS = new String[0];
}
Another alternative is to use a collection instead of an array, if possible.
The
Collections
class contains these constants, which you may find useful :
Collections.EMPTY_LIST
Collections.EMPTY_SET
Collections.EMPTY_MAP
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/52621/showart_1003926.html |
|