Java 5.0 ·ºÐÍÖ® ÊÜÏÞ·ºÐÍ
package Demo;
// ÊÜÏÞ·ºÐÍ
class Info17<T> {
private T var; // ¶¨Òå·ºÐͱäÁ¿
public void setVar(T var) {
this.var = var;
}
public T getVar() {
return this.var;
}
public String toString() { // Ö±½Ó´òÓ¡
return this.var.toString();
}
}
public class GenericsDemo17 {
public static void main(String args[]) {
Info17<Integer> i1 = new Info17<Integer>(); // ÉùÃ÷IntegerµÄ·ºÐͶÔÏó
Info17<Float> i2 = new Info17<Float>(); // ÉùÃ÷FloatµÄ·ºÐͶÔÏó
i1.setVar(30); // ÉèÖÃÕûÊý£¬×Ô¶¯×°Ïä
i2.setVar(30.1f); // ÉèÖÃСÊý£¬×Ô¶¯×°Ïä
fun(i1);
fun(i2);
}
public static void fun(Info17<? extends Number> value) { // Ö»ÄܽÓÊÕNumber¼°ÆäNumberµÄ×ÓÀà
System.out.println(value);
}
}
package Demo;
// ÊÜÏÞ·ºÐÍ
class Info21<T> {
private T var; // ¶¨Òå·ºÐͱäÁ¿
public void setVar(T var) {
this.var = var;
}
public T getVar() {
return this.var;
}
public String toString() { // Ö±½Ó´òÓ¡
return this.var.toString();
}
}
public class GenericsDemo21 {
public static void main(String args[]) {
Info21<String> i1 = new Info21<String>(); // ÉùÃ÷StringµÄ·ºÐͶÔÏó
Info21<Object> i2 = new Info21<Object>(); // ÉùÃ÷ObjectµÄ·ºÐͶÔÏó
i1.setVar("hello");
i2.setVar(new Object());
fun(i1);
fun(i2);
}
public static void fun(Info21<? super String> value) { // Ö»ÄܽÓÊÕString»òObjectÀàÐ͵ķºÐÍ
System.out.println(value);
}
}
Ïà¹ØÎĵµ£º
ÔÚ½ñÄê11Ô·ݣ¬ºêÌìÈí¼þ¿ª·ÅÁ˹«Ë¾µÄ¿ªÔ´°æOA 1.2
beta°æ±¾£¬µÃµ½Í¬ÐÐÒÔ¼°ÆóÒµµÄÈÈÁÒÏìÓ¦£¬¹«Ë¾Ò²¼Ó½ôÁËÏÂÒ»²½µÄ¿ªÔ´µÄ²½·¥£¬ºêÌìÈí¼þ°ÑÏÖÐÐµÄÆóÒµ°æ1.2.1Ò²¶ÔËùÓÐÆóÒµ¿ª·ÅÔ´´úÂ루ÔÝʱ²»¶Ô¸öÈË¿ª
·Å£¬ËäȻĿǰÓкܶà¸öÈ˼°Èí¼þ¿ª·¢ÊÒÇ¿ÁÒÒªÇ󣩣¬ÆóÒµÖ»ÐèÒª»¨ÉÏÍòÔª×óÓÒ£¬¾Í¿ÉÒÔ¹ºÂò¸Ã°æ±¾µÄÈ«²¿´úÂ룬²¢»ñµÃÊÚȨ»ùÓÚ´ËÏ ......
֮ǰ½éÉÜÁËJavaµÄÓï·¨»ù´¡£¬½ÓÏÂÀ´½éÉÜÃæÏò¶ÔÏóµÄÏà¹ØË¼ÏëºÍ¸ÅÄî¡£
±¾²¿·Ö°üº¬µÄÖ÷ÒªÄÚÈݰüÀ¨£º
1¡¢ÀàÓë¶ÔÏó£¬Ö÷Òª½éÉÜÀàºÍ¶ÔÏóÖ®¼äµÄ¹ØÏµ¡£
2¡¢ÏÖʵÊÀ½çÖеĶÔÏóÓëÈí¼þϵͳÖеĶÔÏ󣬽éÉÜÈçºÎ´ÓÏÖʵÊÀ½çÖеĶÔÏó³éÏó³öÈí¼þϵͳÖеĶÔÏó¡£
3¡¢Èí¼þϵͳÖеĶÔÏóºÍÀàÖ®¼äµÄ¹ØÏµ£¬ÈçºÎ¸ù¾ÝÈí¼þ¶ÔÏó³éÏó³öÀà¡£
4¡¢ÀàµÄ¶¨Òå ......
StringBufferÒ²ÊÇ×Ö·û´®£¬ÓëString²»Í¬µÄÊÇStringBuffer¶ÔÏó´´½¨ÍêÖ®ºó¿ÉÒÔÐÞ¸ÄÄÚÈÝ¡£ÓÐÈçϹ¹Ô캯Êý£º
n public StringBuffer(int);
n public StringBuffer(String);
n ......
ÔÚ³õʼ»¯Ò»¸öÀ࣬Éú³ÉÒ»¸öʵÀýµÄʱºò£¬newInstance()·½·¨ºÍnew¹Ø¼ü×Ö³ýÁËÒ»¸öÊÇ·½·¨£¬Ò»¸öÊǹؼü×ÖÍ⣬×îÖ÷ÒªÓÐÊ²Ã´Çø±ð£¿ËüÃǵÄÇø±ðÔÚÓÚ´´½¨¶ÔÏóµÄ·½Ê½²»Ò»Ñù£¬Ç°ÕßÊÇʹÓÃÀà¼ÓÔØ»úÖÆ£¬ºóÕßÊÇ´´½¨Ò»¸öÐÂÀà¡£ÄÇôΪʲô»áÓÐÁ½ÖÖ´´½¨¶ÔÏó·½Ê½£¿ÕâÖ÷Òª¿¼Âǵ½Èí¼þµÄ¿ÉÉìËõ¡¢¿ÉÀ©Õ¹ºÍ¿ÉÖØÓõÈÈí¼þÉè¼ÆË¼Ïë¡£
......
package Demo;
// ͨÅä·û
class Info14<T> {
private T var; // ¶¨Òå·ºÐͱäÁ¿
public void setVar(T var) {
this.var = var;
}
public T getVar() {
return this.var;
}
public String toString() { // Ö±½Ó´òÓ¡
return this.var.toString();
}
}
public class GenericsDemo14 {
public ......