龙空技术网

Java之路-反射2:调用方法、构造方法和继承关系

神马程序猿 1761

前言:

当前朋友们对“java调用别的方法的返回值”可能比较看重,咱们都想要知道一些“java调用别的方法的返回值”的相关内容。那么小编在网上收集了一些有关“java调用别的方法的返回值””的相关内容,希望姐妹们能喜欢,姐妹们快快来了解一下吧!

一、调用方法

Class类主要通过以下方法获取Method

Method getMethod(name, Class...):获取某个public的Method(包括父类)

Method getDeclaredMethod(name, Class...):获取当前类的某个Method(不包括父类)

Method[] getMethods():获取所有public的Method(包括父类)

Method[] getDeclaredMethods():获取当前类的所有Method(不包括父类)

每个Method类包含一下获取Method类信息的方法

getName():返回方法名称,例如:"getScore";

getReturnType():返回方法返回值类型,也是一个Class实例,例如:String.class;

getParameterTypes():返回方法的参数类型,是一个Class数组,例如:{String.class, int.class};

getModifiers():返回方法的修饰符,它是一个int,不同的bit表示不同的含义。

此外通过Method实例可以调用某个对象的方法:Object invoke(Object instance, Object... parameters);

二、调用构造方法

Class实例获取Constructor的方法有:getConstructor(Class...):获取某个publicConstructor

getDeclaredConstructor(Class...):获取某个Constructor;

getConstructors():获取所有public的Constructor;

getDeclaredConstructors():获取所有Constructor。

Constructor实例可以通过newInstance(Object... parameters)创建一个实例对象


三、获取继承关系

获取到某个Class对象的方法有:

//获取到String的Class

Class cls = String.class; //class java.lang.String

//s是String,因此获取到String的Class

String s = "";

Class cls2 = s.getClass(); //class java.lang.String

Class cls3 = Class.forName("java.lang.String");//class java.lang.String

Class getSuperclass():获取父类类型;

Class[] getInterfaces():获取当前类实现的所有接口。

通过Class对象的isAssignableFrom()方法可以判断一个向上转型是否可以实现。


标签: #java调用别的方法的返回值