public class Test {
public static void main(String[] args) {
String str = "ok";
Class cl = str.getClass();
System.out.println(cl);
}
}
運行結果:public static void main(String[] args) {
String str = "ok";
Class cl = str.getClass();
System.out.println(cl);
}
}
class java.lang.String
JAVA反射機制主要提供了以下功能:
1.在運行時判斷任意一個對象所屬的類
2.在運行時構造任意一個類的對象
3.在運行時判斷任意一個類所具有的成員變量和方法(通過反射甚至可以調用private方法)
4.在運行時調用任意一個對象的方法(*****注意:前提都是在運行時,而不是在編譯時)
1.在運行時判斷任意一個對象所屬的類
2.在運行時構造任意一個類的對象
3.在運行時判斷任意一個類所具有的成員變量和方法(通過反射甚至可以調用private方法)
4.在運行時調用任意一個對象的方法(*****注意:前提都是在運行時,而不是在編譯時)
Java 反射相關的API簡介:
位于java.lang.reflect包中
--Class類:代表一個類
--Filed類:代表類的成員變量
--Method類:代表類的方法
--Constructor類:代表類的構造方法
--Array類:提供了動態創建數組,以及訪問數組的元素的靜態方法。該類中的所有方法都是靜態方法
位于java.lang.reflect包中
--Class類:代表一個類
--Filed類:代表類的成員變量
--Method類:代表類的方法
--Constructor類:代表類的構造方法
--Array類:提供了動態創建數組,以及訪問數組的元素的靜態方法。該類中的所有方法都是靜態方法
Class c = u.getClass().forName("User");
Method m[] = c.getDeclaredMethods();
for (int i = 0; i < m.length; i++)
System.out.println(m[i].toString());
運行結果:Method m[] = c.getDeclaredMethods();
for (int i = 0; i < m.length; i++)
System.out.println(m[i].toString());
public void User.setId(int)
public java.lang.String User.getSex()
public void User.setSex(java.lang.String)
public java.lang.String User.getTel()
public void User.setTel(java.lang.String)
public java.lang.String User.getName()
public int User.getId()
public void User.setName(java.lang.String)
public void User.save()
public java.lang.String User.getSex()
public void User.setSex(java.lang.String)
public java.lang.String User.getTel()
public void User.setTel(java.lang.String)
public java.lang.String User.getName()
public int User.getId()
public void User.setName(java.lang.String)
public void User.save()