通过反射获取方法返回的类型

简介: 通过反射获取方法返回的类型
package org.entity;
import java.lang.reflect.Method;
import java.lang.reflect.Type;
/**
 * 本案例演示如何通过反射将字符串转换为类
 * */
public class Test3 {
  
  public static void main(String[] args) {
    String user = "org.entity.User";//字符串是该类的全限定名
      try {
        Class clzz = Class.forName(user);
        Object classObj=clzz.newInstance();//将class类转换为对象
        //--------------------反射类调用User中的sayHello()方法-----------------------------
        //注意导入正确的Method包名:
        // import java.lang.reflect.Method;
        //获取该类的所有方法
        Method[] methods = clzz.getMethods();
        //遍历方法
        for(Method m:methods){
          if(m.getName().equals("sayHello2")){//找到sayHello这个方法
            //获取返回类型
            Type type=m.getGenericReturnType();
            //如果返回的是类 (比如user)aa显示为:class org.entity.User
            //如果返回的是普通数据类型(int) aa显示为:int
            String aa=type.toString();
            String nameString="";
          }
        }
      } catch (ClassNotFoundException e) {
        e.printStackTrace();
      } catch (InstantiationException e) {
        e.printStackTrace();
      } catch (IllegalAccessException e) {
        e.printStackTrace();
      }
    
  }
}

 

相关文章
|
8月前
|
测试技术
反射获取或修改对象属性的值
* 获取单个对象的所有键值对
58 3
|
8月前
自定义封装一个方法让这个方法可以判断所有的数据类型并返回
自定义封装一个方法让这个方法可以判断所有的数据类型并返回
45 0
对象的属性和值转换
对象的属性和值转换
48 0
|
Java 编译器
重载的方法能否根据返回类型进行区分?
重载的方法不能根据返回类型进行区分。方法的重载是基于方法名称和参数列表来进行区分的,与返回类型无关。这是因为在Java中,编译器在确定要调用哪个重载方法时,仅根据传递给方法的参数来进行决策。
391 0
|
测试技术 Android开发
怎么知道方法的参数有哪些类型呢?
怎么知道方法的参数有哪些类型呢?
224 0
|
C# 索引
C#反射与特性(八):反射操作的示例大全
C#反射与特性(八):反射操作的示例大全
357 0
如何通过反射调用对象的方法?
import java.lang.reflect.Method; class MethodInvokeTest { public static void main(String[] args) throws Exception { ...
1125 0

热门文章

最新文章