??????????????????????У??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????java????????????
?????????????????????潲???????????
??????class ?????
?????????????
?????????????????
?????????????????
???????????class??
???????????????????????????????????????java.lang.Class??????????????class?????java?????????new???????κ????????Class ??????????????????????????????
????public class User{
????}
????public class ClassTest{
????User u=new User();
????//???1:
????Class c1=User.class;
????//???2:
????Class c2=u.getClass();
????//???3:
????Class c3=Class.forName("com.forezp.User");
????//?????????????????????????????
????User user=(User)c1.newInstance();
????}
????????class?????????
????Class.forName(??????);?÷???????????????????????????????????????????????????????????????????????????????
??????????????????
???????????????????void??????Class ??????;???????getame();getSimpleName()???????????
????Class c1=String.class;
????Class c2=int.class;
????Class c3=void.class;
????System.out.println(c1.getName());
????System.out.println(c2.getSimpleName());
?????????????з????????????????
????public static void printClassInfo(Object object){
????Class c=object.getClass();
????System.out.println("????????"+c.getName());
????/**
????* ???????????????method????
????* getMethod()???е? public???????????????е? public
????* getDeclaredMethods()??????????е??????????private ????????????е??????
????*/
????Method[] methods=c.getMethods();//???????
????//?????????????????private ??c.getDeclaredMethods();
????for(int i=0;i<methods.length;i++){
????//????????????????
????Class returnType=methods[i].getReturnType();
????System.out.print(returnType.getName());
????//???????????
????System.out.print(methods[i].getName()+"(");
????Class[] parameterTypes=methods[i].getParameterTypes();
????for(Class class1:parameterTypes){
????System.out.print(class1.getName()+"??");
????}
????System.out.println(")");
????}
????}
????public class ReflectTest {
????public static void main(String[] args){
????String s="ss";
????ClassUtil.printClassInfo(s);
????}
????}
???????У?
????????????java.lang.String
????booleanequals(java.lang.Object??)
????java.lang.StringtoString()
????inthashCode()
????…
??????????????????????
???????????????????????
????public static void printFiledInfo(Object o){
????Class c=o.getClass();
????/**
????* getFileds()???public
????* getDeclaredFields()???????
????*/
????Field[] fileds=c.getDeclaredFields();
????for(Field f:fileds){
????//????????????????
????Class filedType=f.getType();
????System.out.println(filedType.getName()+" "+f.getName());
????}
????}
????public static void main(String[] args){
????String s="ss";
????//ClassUtil.printClassInfo(s);
????ClassUtil.printFiledInfo(s);
????}