java反射获取接口修饰符

来源:百度知道 编辑:UC知道 时间:2024/06/09 03:37:43
可以通过以下代码获取TestIA的修饰符
========================================================
public static void main(String[] args) {
TestIA s=new TestIA();
printModifiers(s);
}

public static void printModifiers(Object o) {
Class c = o.getClass();
int m = c.getModifiers();
if (Modifier.isPublic(m))
System.out.println("public");
if (Modifier.isAbstract(m))
System.out.println("abstract");
if (Modifier.isFinal(m))
System.out.println("final");
}
=================================================================

都说接口中的变量,常量,方法都是public static final的,即使不加系统也会默认地加上....想用反射获取接口中的修饰符该如何做? 接口又不能实例化不能用上面的代码....

谁说的?都说接口中的变量,常量,方法都是public static final????
变量被final了那还叫变量么?被final的都叫常量
确实,在接口中定义的属性是public static final
但是方法就不是,它只是public abstract型的,没有static和final

我刚写的,你自己运行一下看看

import java.lang.reflect.Method;

public class Refect {
public static void main(String[] args) {
Class a=BaiDu.class;
Method[] method=a.getDeclaredMethods();
for(int i=0;i<method.length;i++){
System.out.println(method[i]);
}

}

}
interface BaiDu{
String a="2";
void add();
}