ÉîÈëjava·´Éä
·´ÉäµÄ»ùʯ——ClassÀà
Java³ÌÐòÖеĸ÷¸öJavaÀàÊôÓÚͬһÀàÊÂÎÃèÊöÕâÀàÊÂÎïµÄJavaÀàÃû¾ÍÊÇClass¡£±ÈÈ磺ÖÚ¶àµÄÈË¿ÉÒÔÓÃÒ»¸öPersonÀàÀ´±íʾ£¬¶øÕâ¸öÀà¾Í¿ÉÒÔÃèÊöÈ˵ÄÐÅÏ¢(ÐÕÃû¡¢ÄêÁä¡¢ÐÔ±ðµÈµÈ)£¬¶øÖÚ¶àµÄJavaÀà¾Í¿ÉÒÔÓÃClassÀ´±íʾ¡£
Question£ºPersonÀà´ú±íÈË£¬ËüµÄʵÀý¶ÔÏó¿ÉÒÔÊÇÕÅÈý¡¢ÀîËÄ£¬ClassÀà´ú±íJavaÀ࣬ËüµÄ¸÷¸öʵÀý¶ÔÏóÓзֱð´ú±íÊ²Ã´ÄØ£¿
Answer: ¶ÔÓ¦¸÷¸öÀàÔÚÄÚ´æÖеÄ×Ö½ÚÂë¡£Ò»¸öÀà±»Àà¼ÓÔØÆ÷¼ÓÔØµ½ÄÚ´æÖУ¬Õ¼ÓÃÒ»·Ý´æ´¢¿Õ¼ä£¬Õâ¸ö¿Õ¼äÀïÃæµÄÄÚÈݾÍÊÇÀàµÄ×Ö½ÚÂ룬²»Í¬µÄÀàµÄ×Ö½ÚÂëÊDz»Í¬µÄ£¬ËùÒÔËüÃÇÔÚÄÚ´æÖеÄÄÚÈÝÊDz»Í¬µÄ£¬ÕâÒ»¸ö¸ö¿Õ¼ä¿É·Ö±ðÓÃÒ»¸ö¸öµÄ¶ÔÏóÀ´±íʾ£¬ÕâЩ¶ÔÏóÏÔÈ»¾ßÓÐÏàͬµÄÀàÐÍ£¬¼´ClassÀàÐÍ¡£
ÈçºÎµÃµ½¸÷¸ö×Ö½ÚÂë¶ÔÓ¦µÄʵÀý¶ÔÏó,ÓÐÈýÖÖ·½·¨£º
1¡¢ÀàÃû.class,ÀýÈç:System.class
2¡¢¶ÔÏó.getClass(),ÀýÈç:new Data().getClass()
3¡¢Class.forName("ÀàÃû"),ÀýÈç:Class.forName("java.util.Date")
ClassÀàµÄÊôÐԺͷ½·¨Çë²Î¼ûjdk
·´Éä
·´Éä¾ÍÊǰÑJavaÀàÖеĸ÷ÖֳɷÖÓ³Éä³ÉÏàÓ¦µÄjavaÀà¡£ÀýÈ磺һ¸öJavaÀàÖÐÓÃÒ»¸öClassÀàµÄ¶ÔÏóÀ´±íʾ£¬Ò»¸öÀàÖеÄ×é³É²¿·Ö£º³ÉÔ±±äÁ¿£¬·½·¨£¬¹¹Ôì·½·¨£¬°üµÈµÈÐÅÏ¢Ò²ÓÃÒ»¸ö¸öµÄJavaÀàÀ´±íʾ¡£±íʾjavaÀàµÄClassÀàÏÔȻҪÌṩһϵÁеķ½·¨À´»ñµÃÆäÖеıäÁ¿£¬·½·¨£¬¹¹Ôì·½·¨£¬ÐÞÊηû£¬°üµÈÐÅÏ¢£¬ÕâЩÐÅÏ¢¾ÍÊÇÓÃÏàÓ¦ÀàµÄʵÀý¶ÔÏóÀ´±íʾ£¬ËüÃÇÊÇField¡¢Method¡¢Contructor¡¢PackageµÈµÈ¡£
ContructorÀà
1¡¢µÃµ½Ä³¸öÀàµÄËùÓй¹Ôì·½·¨£º
Contructor[] contructors = lass.forName("ˈ̞").getContructors();
2¡¢µÃµ½Ä³¸öÌØ¶¨µÄ¹¹Ôì·½·¨£º
//»ñµÃ·½·¨Ê±ÒªÓõ½ÀàÐÍ
Contructor contructors = Class.forName("ÀàÃû").getContructor(²ÎÊýÀàÐÍ.class,...);
3¡¢´´½¨ÊµÀý¶ÔÏó
ͨ³£·½Ê½:String str = new String(new StringBuffer("abc"));
//µ÷ÓûñµÃµÄ·½·¨Ê±ÒªÓõ½ÉÏÃæÏàͬÀàÐ͵ÄʵÀý
·´É䷽ʽ:String str = (String)contructor.newInstance(new StringBuffer("abc"));
4¡¢Class.forName();
·Ê¾Àý:String obj = (String)Class.forName("java.lang.Str
Ïà¹ØÎĵµ£º
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 {
publ ......
ͨ¹ýJava·´Éäµ÷Ó÷½·¨
ÕâÊǸö²âÊÔÓõÄÀý×Ó£¬Í¨¹ý·´Éäµ÷ÓöÔÏóµÄ·½·¨¡£
TestRef.java
import java.lang.reflect.Method;
import java.lang.reflect.InvocationTargetException;
/**
* Created by IntelliJ IDEA.
* File: TestRef.java
* User: leizhimin
* Date: 2008-1-28 14:48:44 ......
package Demo;
// ͨ¹ý·ºÐÍ·½·¨·µ»Ø·ºÐÍÀàÐÍ
class Info27<T extends Number> { // Ö¸¶¨ÉÏÏÞ£¬Ö»ÄÜÊÇÊý×ÖÀàÐÍ
private T var; // ´ËÀàÐÍÓÉÍⲿ¾ö¶¨
public T getVar() {
return this.var;
}
public void setVar(T var) {
this.var = var;
}
public String toString() { // ¸²Ð´ObjectÀàÖеÄtoStr ......
package Demo;
// Java·ºÐͽӿÚ
interface Info24<T> { // ÔÚ½Ó¿ÚÉ϶¨Òå·ºÐÍ
public T getVar(); // ¶¨Òå³éÏó·½·¨£¬³éÏó·½·¨µÄ·µ»ØÖµ¾ÍÊÇ·ºÐÍÀàÐÍ
}
class InfoImp24<T> implements Info24<T> { // ¶¨Òå·ºÐͽӿڵÄ×ÓÀà
private T var; // ¶¨ÒåÊôÐÔ
public InfoImp24(T var) { // ͨ¹ý¹¹Ôì·½·¨É ......