java内省 introspector

JAVA学习网 2018-02-19 15:17:02

属性的概念

不只是字段,而是其get set 方法

且该get方法有返回值的称为属性,继承Object类的getClass方法

package com.swift.demo1;

public class Person {
    String name;
    int age;
    String password;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public String getAd() {//这个算一个属性,虽让没有字段,但如果没有返回值不算一个属性
        return "getAd.....";
    }
}

属性个数

package com.swift.demo1;

import java.beans.BeanInfo;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;

import org.junit.jupiter.api.Test;

public class TestIntro {
    @Test
    public void test1() throws Exception {
        BeanInfo info=Introspector.getBeanInfo(Person.class);
        PropertyDescriptor[] pds=info.getPropertyDescriptors();
        for(PropertyDescriptor des:pds) {
            System.out.println(des.getName());
        }
    }
}

阻止父类的getClass属性用

package com.swift.demo1;

import java.beans.BeanInfo;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;

import org.junit.jupiter.api.Test;

public class TestIntro {
    @Test
    public void test1() throws Exception {
        BeanInfo info=Introspector.getBeanInfo(Person.class,Object.class);
        PropertyDescriptor[] pds=info.getPropertyDescriptors();
        for(PropertyDescriptor des:pds) {
            System.out.println(des.getName());
        }
    }
}

 

阅读(769) 评论(0)