简介:
本文使用反射获取接口中的全限定方法名和变量名,需要有点反射基础
接口:
package 接口中定义方法.反射获取接口中的默认修饰符;
public interface Interface {
String a = "";
void abstractMethod();
static void staticMethod(){
System.out.println("I name is B;");
String strings="w";
}
default void defaultMethod(){
System.out.println("I name is defaultMethod()");
}
}
测试类:
package 接口中定义方法.反射获取接口中的默认修饰符;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
public class Main{
public static void main(String[] args) {
Class<?> aClass = null;
try {
aClass = Class.forName("接口中定义方法.反射获取接口中的默认修饰符.Interface");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
System.out.println(">>>Method");
Method[] declaredMethods = aClass.getDeclaredMethods();
for (Method method:declaredMethods){
System.out.println(method.toString());
}
System.out.println(">>>Field");
Field[] fields = aClass.getFields();
for (Field field:fields){
System.out.println(field.toString());
}
}
}
运行结果:
>>>Method
public abstract void 接口中定义方法.反射获取接口中的默认修饰符.Interface.abstractMethod()
public default void 接口中定义方法.反射获取接口中的默认修饰符.Interface.defaultMethod()
public static void 接口中定义方法.反射获取接口中的默认修饰符.Interface.staticMethod()
>>>Field
public static final java.lang.String 接口中定义方法.反射获取接口中的默认修饰符.Interface.a
总结:
变量:
接口中的变量默认修饰符 public static final
普通方法:
默认声明为:public abstract
静态方法:
默认声明为:public static
defalut方法:
defalut修饰方法只能在接口中使用,在接口种被default标记的方法为普通方法,可以直接写方法体。
默认声明为:==public default ==
另外:
接口中不允许定义构造函数,含义代码块,静态代码块