Java如何获得一个类里面的各个属性和类型

Java如何获得一个类里面的各个属性和类型,第1张

使用反射可以获取到;

代码如下:

import javalangreflectField;  //这是需要引入的包Field[]  f = 类名classgetDeclaredFields(); //获取该类的字段(public, protected, default (package) access, and private)

for(Field ff:f)            //遍历字段

{

  Systemoutprintln(ffgetType());    //获取字段类型

  Systemoutprintln(ffgetName());    //获取字段名

}

反射不是通过get取值的,是通过该对象的信息,比如说名称、内存地址等来访问类,方法属性等,可以获取任意对象的信息,但不能获得私有属性(private String s=“sd”;)的值,切记

推荐《JAVA核心技术》这本书会对你有帮助的

把这个方法写在基类

public void getFields() {

        Class<> cls = getClass();

        for (; cls != Objectclass; cls = clsgetSuperclass()) {

            Field[] fs = clsgetDeclaredFields();

            for (Field f : fs) {

                Systemoutprintln(fgetName());

            }

        }

    }

for (int i = 0; i < fieldslength; i++) {

Field field = fields[i];

String fieldName = fieldgetName();

Systemoutprintln("name====="+fieldName);

String firstLetter = fieldNamesubstring(0, 1)toUpperCase();

// 获得和属性对应的getXXX()方法的名字

String getMethodName = "get" + firstLetter + fieldNamesubstring(1);

// 获得和属性对应的getXXX()方法

Method getMethod = classTypegetMethod(getMethodName, new Class[]{});

// 调用原对象的getXXX()方法

Object value = getMethodinvoke(object, new Object[]{});

Systemoutprintln("value===="+value);

}

Class<> clazz = refgetClass();

Method method=clazzgetMethod("getLength");

Systemoutprintln(methodinvoke(ref));

以上就是关于Java如何获得一个类里面的各个属性和类型全部的内容,包括:Java如何获得一个类里面的各个属性和类型、java反射取对象属性值 不是通过get方法取值、java中如何获取类的属性等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9669552.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存