回覆列表
  • 1 # ONE丶PIECE丶

    物件的字串屬性, 在沒賦值的情況下是null

    class Student{

    String name;//沒有賦值,初始化的情況下,name==null

    }如果要避免出現null ,那麼可以採取下面幾種方式 ,下面的方式比較多,可以根據實際情況,使用幾種.

    public class Person {

    String name;

    public Person() {//無慘構造器

    name=""; // 直接給name賦值為""

    }

    public Person(String name) {//有引數構造器

    this.name = validateName(name);//先驗證引數name是否為空,為空字串""

    }

    public String getName() {//獲取name屬性的值

    return name == null ? "" : name;// 獲取name屬性,如果為null,那麼返回空字串""

    }

    public void setName(String name) {//設定name屬性的值

    this.name =validateName(name);//驗證name是否為空, 如果為空,那麼返回空字串""

    }

    private String validateName(String name) {//驗證字串是否為空.為空就返回空字串

    return name == null ? "" : name;

    }

    public static void main(String[] args) {

    Person p = new Person();

    p.setName(null);

    if("".equals(p.name)&&"".equals(p.getName())) {

    System.out.println("空字串");

    }

    }

    }最後字串的比較. 使用確定不為null的字串去呼叫equals方法. 

    因為值null的字串呼叫equals方法,會出現空指標異常

    string a = null;

    string b = "";

    b.equals(a); //false

    a.equals(b); //空指標異常

  • 中秋節和大豐收的關聯?
  • 朋友男,下班就回家帶孩子、做飯、幹家務,很少應酬,偶爾去喝酒老婆嫌太晚回。這老婆能要嗎?