㈠ java中如何獲取類的屬性
把這個方法寫在基類
publicvoidgetFields(){
Class<?>cls=getClass();
for(;cls!=Object.class;cls=cls.getSuperclass()){
Field[]fs=cls.getDeclaredFields();
for(Fieldf:fs){
System.out.println(f.getName());
}
}
}
㈡ Java如何獲得一個類裡面的各個屬性和類型
使用反射可以獲取到;
代碼如下:
importjava.lang.reflect.Field;//這是需要引入的包
Field[]f=類名.class.getDeclaredFields();//獲取該類的欄位(public,protected,default(package)access,andprivate)
for(Fieldff:f)//遍歷欄位
{
System.out.println(ff.getType());//獲取欄位類型
System.out.println(ff.getName());//獲取欄位名
}
㈢ java如何判斷屬性類型
你是想通過傳入一個類模板然後判斷出某個屬性的類型?
利用反射可以做到
Field
filed
=
className.getDeclaredField(parameter);
className為對應類模版,parameter為你的屬性名稱
filed.getType().toString();
然後利用這個方法可以查詢到對應屬性類型
基本類型直接返回比如
int
直接返回int
,如果是包裝或者引用
則直接
返回對應包類名
比如
class
java.lang.Short
如果你要獲取所有的
還是利用class對象
Field[]
fields
=className.getDeclaredFields();
循環遍歷就可以了
㈣ 如何通過Java反射獲取一個類屬性的類型要類型Class<
先獲取Method對象
以下僅供參考
packagecom.kidd.test.;
importjava.lang.reflect.Method;
/**
*Helloworld!
*
*/
publicclassMain{
publicstaticvoidmain(String[]args){
Methodmethod1=null;
Methodmethod2=null;
try{
method1=Class.forName("com.kidd.test..Cat").getMethod("getName",(Class<?>[])null);
method2=Class.forName("com.kidd.test..Cat").getMethod("getChilds",(Class<?>[])null);
}catch(NoSuchMethodExceptionex){
ex.printStackTrace();
}catch(SecurityExceptionex){
ex.printStackTrace();
}catch(ClassNotFoundExceptionex){
ex.printStackTrace();
}
if(null!=method1){
System.out.println(method1.getGenericReturnType().getTypeName());
}
if(null!=method2){
System.out.println(method2.getGenericReturnType().getTypeName());
}
}
}
classCat{
privateStringname;
privateCat[]childs;
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicCat[]getChilds(){
returnchilds;
}
publicvoidsetChilds(Cat[]childs){
this.childs=childs;
}
}
㈤ 如何利用java的反射機制動態的取得對象的屬性
Java.lang.Class
getDeclaredFields()
返回 Field 對象的一個數組,這些對象反映此 Class
對象所表示的類或介面所聲明的所有欄位。
Java.lang.reflect.Field
getName()
返回此 Field 對象表示的欄位的名稱。
getGenericType()
返回一個 Type 對象,它表示此 Field 對象所表示欄位的聲明類型。
以上是jdk裡面的一些用法,就是用你想要獲取對象的屬性得到它的class 然後調用 getDeclaredFields()就可以得到欄位數組了。
然後再用下面的方法就可以得到屬性名,類型這一些。
很簡單,要想實現現復雜的功能就再找一下api 找出相應的方法。
㈥ java 怎麼獲取一個對象的屬性
1、過去某個類的某個屬性:
可以通過對象調用其屬性:
1)、創建對象 : 類名 對象名 = new 類名();
2)、調用屬性: 對象名.屬性
2、獲取某個對象的所有屬性
數組類型[] 數組名 = 對象名.getClass().getDeclaredFields();
㈦ java中如何遍歷實體類的屬性和數據類型以及
可以通過反射獲取到屬性方法信息:
publicclassUser{
privateintid;
privateStringname;
privatedoubleamount;
publicintgetId(){
returnid;
}
publicvoidsetId(intid){
this.id=id;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicdoublegetAmount(){
returnamount;
}
publicvoidsetAmount(doubleamount){
this.amount=amount;
}
}
獲取類信息:
importjava.lang.reflect.Field;
importjava.lang.reflect.Method;
importjava.lang.reflect.Parameter;
publicclassReflectDemo{
publicstaticvoidmain(String[]args){
Classclz=User.class;
//獲取所有自己定義的屬性(不包含從Object繼承的,如果需要可使用getFields()方法)
Field[]fields=clz.getDeclaredFields();
for(Fieldf:fields){
System.out.println("屬性名稱:"+f.getName()+",屬性類型:"+f.getType().getName());
}
//獲取所有自己定義的方法(同樣不包含繼承的)
Method[]methods=clz.getDeclaredMethods();
for(Methodm:methods){
System.out.println("方法名稱:"+m.getName());
System.out.println("返回值類型:"+m.getReturnType().getName());
//獲取方法的所有參數
Parameter[]parameters=m.getParameters();
for(Parameterp:parameters){
System.out.println("參數類型:"+p.getType().getName());
}
System.out.println("==========================================");
}
}
}
㈧ 寫一個Java方法,取得某個類里的所有屬性
給你寫了個例子你看下哈。。
import java.lang.reflect.Field;
public class GetField {
public static void main(String[] args) {
try {
Class clazz = Class.forName("");//根據類名獲得其對應的Class對象 寫上你想要的類名就是了 注意是全名 如果有包的話要加上 比如java.Lang.String
Field[] fields = clazz.getDeclaredFields();//根據Class對象獲得屬性 私有的也可以獲得
for(Field f : fields) {
System.out.println(f.getType().getName());//列印每個屬性的類型名字
}
} catch(Exception e) {
e.printStackTrace();
}
}
}
㈨ java 傳過來一個對象,如何得到這個對象的所有屬性值
1、過去某個類的某個屬性:
2,可以通過對象調用其屬性:
3,創建對象 :類名 對象名 = new 類名();
4,調用屬性:對象名.屬性
5,獲取某個對象的所有屬性
6,數組類型[] 數組名 = 對象名.getClass().getDeclaredFields();
7,使用反射
public static void main(String[] args) {
Model model = new Model();
Field fd = new Field();
fd.getField(model);
}
private void getField(Object model) {
java.lang.reflect.Field[] fields = model.getClass().getDeclaredFields();
for(java.lang.reflect.Field f:fields){
System.out.println(f.getName());
}
}
㈩ java怎麼通過反射得到屬性的類型
Class<?>cls=Class.forName(className);//通過類的名稱反射類
Objectobj=cls.newInstance();//對象實例化
Fieldfield=cls.getField(fieldName);//這個對應的是屬性
fieldValue=field.get(obj);//這個就是屬性的值