Properties 中的两种getProperty返回值,以及返回值与其他String比较
public String getProperty (String name, String defaultValue)
Since: API Level 1
Searches for the property with the specified name. If the property is not found, it looks in the default Properties
. If the property is not found in the default Properties
, it returns the specified default.
Parameters
name
the name of the property to find.
defaultValue
the default value.
Returns
- the named property value.
public String getProperty (String name)
Since: API Level 1
Searches for the property with the specified name. If the property is not found, the default Properties
are checked. If the property is not found in the default Properties
, null
is returned.
Parameters
name
the name of the property to find.
Returns
- the named property value, or
null
if it can't be found.
这是android API上的官方描述。
我觉得第一种好一点。
当然,情况如果是这样的:
1: String unsigned_value = "Unsigned";
2: boolean haveSigned = true;
3: Properties p =new Properties();
4: try
5: {
6: p.load(openFileInput(fileName));
7: str_tmp = p.getProperty(date_key,"Unsigned");
8: if (str_tmp.equals(unsigned_value)) //此处字符串比较是症结所在。。。
9: {
10: haveSigned = false;
11: }
12:
13: } catch (FileNotFoundException e)
14: {
15: e.printStackTrace();
16: } catch (IOException e)
17: {
18: e.printStackTrace();
19: }
格式什么的大致这样吧,总之这是在某个方法中的.关键是从properties中取得date_key对应的value值,来判断haveSigned是ture还是false。
如果用第二种,p.getProperty(date_key);
那么如果Properties中没有date_key,就会返回null,这时用str_tmp.equals(unsigned_value)这句不论真假都会报错。。屡试不爽。。
思考一下,是不是说,因为str_tmp是null了,所以是“空”,是没有的东西,所以没法用.equals比较呢?
我去试一下。。。
额,好吧,果然把位置换过来就可以了,unsigned_value.equals(str_tmp);
算是小儿科吧,不过如果当初就直接用第一种,返回个String 就没问题了。
基础不牢固啊~~~
大家谨慎~