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:
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