public class tongpeifu
static void unboundedarg(holder <?> holder ,object arg){}
static t exact1(holderholder);
static t exact2(holderholder,t arg);
static t wildsubtype(holder<? extends t> holder,t arg);
static t wildsuptype(holder<? super t> holder,t arg);
}
public class holder
public t gett()
}
最近在看泛型,剛好到了萬用字元,記錄下。
在上面**rawargs()中,編譯器知道holder是乙個泛型型別,因此即使在這裡被表示成原生型別,編譯器知道向set傳遞object是不安全的。(不能set object型別,應該持有具有某種具體型別的同構集合),由於他是原生的,你可以將任何型別的物件傳遞給set,二這個物件會被向上轉型為object(泛型的擦除)。因此無論何時,只要使用原生型別,都會放棄編譯期檢查。對get方法呼叫說明相同的問題:沒有任何t型別物件,因此結果只能是object。
holder與holder<?>是大致相同的事物。但現實說明它們是不同的,因為原生的holder將持有任何型別的組合,二holder<?>將持有具有某種具體型別的同構集合,因此不能只是向其中傳遞object。
exact1和exact2中,使用了確切的泛型引數---無萬用字元。這倆方法具有不同的限制,因為它必須有額外的引數。
wildsupertype展示了超型別萬用字元,這個方法與wildsubtype相反的行為:holder可以持有任何t型別的容器,因此set可以接受t,但是嘗試呼叫get是沒用的。因為有holder持有的型別可以說任何超類,因此唯一安全的型別就是object。
SQL LIKE 萬用字元隨筆
萬用字元 說明 與任意單字元匹配 與包含乙個或多個字元的字串匹配 與特定範圍 例如,a f 或特定集 例如,abcdef 中的任意單字元匹配。與特定範圍 例如,a f 或特定集 例如,abcdef 之外的任意單字元匹配。例子 where firstname like im 可以找到所有三個字母的 以...
SQL LIKE 萬用字元隨筆
萬用字元 說明 與任意單字元匹配 與包含乙個或多個字元的字串匹配 與特定範圍 例如,a f 或特定集 例如,abcdef 中的任意單字元匹配。與特定範圍 例如,a f 或特定集 例如,abcdef 之外的任意單字元匹配。例子 where firstname like im 可以找到所有三個字母的 以...
SQL LIKE 萬用字元隨筆
萬用字元 說明 與任意單字元匹配 與包含乙個或多個字元的字串匹配 與特定範圍 例如,a f 或特定集 例如,abcdef 中的任意單字元匹配。與特定範圍 例如,a f 或特定集 例如,abcdef 之外的任意單字元匹配。例子 where firstname like im 可以找到所有三個字母的 以...