大概是這樣的乙個故事,首先看成員: 謝霆鋒,張柏芝 以及他的兩個兒子,如果實體沒有實現cloneable方法,沒有呼叫clone方法,將會得到兩個不同的結果。
首先看結果:
錯誤的結果1:(未實現實體的cloneable方法)
我是第乙個孩子我的名字是lucas我爸是謝霆鋒我媽是張柏芝我是第二個孩子我的名字是quintus我爸是謝霆鋒我媽是張柏芝
突然有一天,港媒記者爆料,第乙個孩子的老爸是陳冠希
lucas的爸爸是謝霆鋒
quintus的爸爸是謝霆鋒
正確的結果2:(實現實體的cloneable方法)
我是第乙個孩子我的名字是lucas我爸是謝霆鋒我媽是張柏芝我是第二個孩子我的名字是quintus我爸是謝霆鋒我媽是張柏芝
突然有一天,港媒記者爆料,第乙個孩子的老爸是陳冠希
lucas的爸爸是陳冠希
quintus的爸爸是謝霆鋒
**實現
coding :
實體:
packagecom.example.model;
public
class student implements
cloneable
catch
(clonenotsupportedexception e)
return
o; }
}
coding:
listalllist = new arraylist();student chirld = new
student();
student lucas = new
student();
student quintus = new
student();
chirld.father = "謝霆鋒";
chirld.monther = "張柏芝";
quintus =chirld;
lucas =chirld;
lucas.name = "lucas";
log.d("1", "我是第乙個孩子" + "我的名字是" + lucas.name + "我爸是" + lucas.father + "我媽是" +lucas.monther);
quintus.name = "quintus";
log.d("2", "我是第二個孩子" + "我的名字是" + quintus.name + "我爸是" + quintus.father + "我媽是"
+quintus.monther);
log.d("3", "突然有一天,港媒記者爆料,第乙個孩子的老爸是陳冠希");
//爆料過程
for (int i = 0; i < 2; i++)
//爆料完畢
log.d("最後他們說", "");
for (int i = 0; i < alllist.size(); i++)
else
student str =alllist.get(i);
log.d("他們說", name + "的爸爸是" +str.father);
}
主要錯誤在爆料過程的迴圈中,雖然new了兩個物件,但是指向的是同一塊記憶體區域。這時候必須呼叫cloneable的clone方法,轉殖乙個實體,才能真正將值改變
coding
//爆料過程
for (int i = 0; i < 2; i++)
catch
(clonenotsupportedexception e)
if (i == 1)
name.father = "謝霆鋒";
else
name.father = "陳冠希";
alllist.add(name);
}
乙個angularjs引用問題
當我用 scriptsrc js angular.min.js 這個方式應用js的時候,如下 scope.task hello,world scope.tasks 這個時候會報乙個注入錯誤 uncaught error injector modulerr 因為例子是對應網上的乙個例子,執行它的 沒有...
引用型別(乙個有趣的問題)
public static void main string args test test tests n test.id 10 這裡沒有問題,修改test.id會導致tests i id一起更改 test tests n test null 這裡有問題,修改test null,但是 tests i...
stripslashes 反引用乙個引用字串
php 4,php 5 stripslashes 反引用乙個引用字串 report a bug string stripslashes string str 反引用乙個引用字串。note 如果 magic quotes sybase 項開啟,反斜線將被去除,但是兩個反斜線將會被替換成乙個。乙個使用範...