你可以这么写:
class BodyImpl implements Body{
//do something
public static void main(String[] args) {
Type[] interfaces = BodyImplclassgetInterfaces();
ParameterizedType firstInterface = (ParameterizedType) interfaces[0];
Class c = (Class) firstInterfacegetActualTypeArguments()[0];
Systemoutprintln(cgetName()); // prints "AtomEntry"
}
}
就得到你所要的接口参数了!
先获取Method对象
以下仅供参考
package comkiddtestzhidao;import javalangreflectMethod;
/
Hello world!
/
public class Main {
public static void main(String[] args) {
Method method1 = null;
Method method2 = null;
try {
method1 = ClassforName("comkiddtestzhidaoCat")getMethod("getName", (Class<>[]) null);
method2 = ClassforName("comkiddtestzhidaoCat")getMethod("getChilds", (Class<>[]) null);
} catch (NoSuchMethodException ex) {
exprintStackTrace();
} catch (SecurityException ex) {
exprintStackTrace();
} catch (ClassNotFoundException ex) {
exprintStackTrace();
}
if (null != method1) {
Systemoutprintln(method1getGenericReturnType()getTypeName());
}
if (null != method2) {
Systemoutprintln(method2getGenericReturnType()getTypeName());
}
}
}
class Cat {
private String name;
private Cat[] childs;
public String getName() {
return name;
}
public void setName(String name) {
thisname = name;
}
public Cat[] getChilds() {
return childs;
}
public void setChilds(Cat[] childs) {
thischilds = childs;
}
}
import javalangreflectField;
import javalangreflectMethod;
public class ReflectTest {
public static void main(String[] args) throws Exception {
User user = new User();
Field field = usergetClass()getField("name");
Systemoutprintln(fieldget(user));
Method method = usergetClass()getMethod("getPassword");
Systemoutprintln(methodinvoke(user));
}
}
class User {
public String name = "admin";
public String getPassword() {
return "123456";
}
}
可以利用JAVA“反射”,看看我上面的例子吧。
以上就是关于如何利用java反射,获取属性接口的具体类全部的内容,包括:如何利用java反射,获取属性接口的具体类、如何通过Java反射获取一个类属性的类型要类型Class<、java中如何用字符串取属性等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)