前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >android之getDeclaredFields等函数介绍

android之getDeclaredFields等函数介绍

作者头像
李小白是一只喵
发布2021-01-14 15:05:39
8670
发布2021-01-14 15:05:39
举报
文章被收录于专栏:算法微时光算法微时光

image.png

函数介绍

函数名

介绍

getFields()

获得某个类的所有的公共(public)的字段,包括父类中的字段。

getDeclaredFields()

获得某个类的所有声明的字段,即包括public、private和proteced,但是不包括父类的申明字段。

getDeclaredMethod

获取当前类的所有声明的方法,包括public、protected和private修饰的方法。需要注意的是,这些方法一定是在当前类中声明的,从父类中继承的不算,实现接口的方法由于有声明所以包括在内。

getMethod

获取当前类和父类的所有public的方法。这里的父类,指的是继承层次中的所有父类。比如说,A继承B,B继承C,那么B和C都属于A的父类。

getDeclaredConstructors()

获取当前类的所有类型的构造器,包括public和非public

getConstructors()

获取当前类的构造器,只返回public。

使用实例

Main_active.java:

代码语言:javascript
复制
package com.exmple.getdeclaredfieldstest;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.util.Log;

import java.lang.reflect.Field;
import java.lang.reflect.Method;

/**
 * @author Lee
 * @date 20/12/14
 */
public class MainActivity extends AppCompatActivity {

    String LeeOne = "China Lee One";
    String LeeTwo = "China Lee Two";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Field[] fields = MainActivity.class.getDeclaredFields();

        for (Field field: fields) {
            Log.d("MainActivity", "---test---getDeclaredFields--toString-" + field.toString());
            Log.d("MainActivity", "---test---getDeclaredFields--getName-" + field.getName());
        }

        Field[] fieldAll = MainActivity.class.getFields();
        for (Field field: fields) {
            Log.d("MainActivity", "---test---getFields--toString-" + field.toString());
            Log.d("MainActivity", "---test---getFields--getName-" + field.getName());
        }

        Method[] methods = MainActivity.class.getDeclaredMethods();
        for (Method method: methods) {
            Log.d("MainActivity", "---test---getDeclaredMethods--toString-" + method.toString());
            Log.d("MainActivity", "---test---getDeclaredMethods--getName-" + method.getName());
        }

        Log.d("MainActivity", "---test---getDeclaredMethods--sizeof-" + methods.length);
        Method[] methodAll = MainActivity.class.getMethods();
        Log.d("MainActivity", "---test---getMethods--sizeof-" + methodAll.length);
    }

    public void print() {
        return;
    }
}

执行效果:

image.png

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 函数介绍
  • 使用实例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档