Re: [問題] 請問marker interface
※ 引述《tedhut (Ted)》之銘言:
: ※ 引述《PsMonkey (痞子軍團團長)》之銘言:
: : 根據 http://www.jguru.com/faq/view.jsp?EID=224126 的解釋(定義?)
: : 我不知道為什麼不能用 or 你究竟要問什麼
: 因為我也只看過那兩個mark interface~
: Serializable和Cloneable~
: 他意思就是說~~mark interface啥麼都沒定義~~只是做分類用~~
: 阿譬如你要用clone~~就要得先implement Cloneable~~
: 可是照理講Cloneable應該裡面啥麼都沒寫啊~~
: 怎麼會不implement就會錯咧?
: 還是mark interface這種東西其實只是電腦在處理使用的~~
: 一般使用者不能自己寫呢??
: 如果自己能寫~~又該怎麼寫咧?不可能裡面全都是空的吧?
考慮如下的程式碼
.A.java
public class A implements B {
public static void main(String argv[]) {
A obj = new A();
if (!(obj instanceof B)) {
System.err.println(obj + "doesn't implement B");
}
}
}
.B.java
public interface B {}
雖然 B 介面沒有任何方法
但是 A 類別實作了 B ,所以我們可以使用 if (obj instanceof B)
來檢查 A 是否實作了 B
這樣就達成了 mark interface 的功能
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.115.205.85
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 5 之 6 篇):