java 什么方法可以看类的类型

java 什么方法可以看类的类型,第1张

import JavaioBufferedReader;

import javaioInputStreamReader;

import javalangreflectMethod;

import javalangreflectModifier;

public class test {

 public static void main(String[] args) throws Exception {

//  BufferedReader bb=new BufferedReader(new InputStreamReader(Systemin));

//  String classname=bbreadLine();

  Class c=ClassforName("ArrayListTestjava");

  //-------------------获取方法的详细信息

  Method m[]=cgetDeclaredMethods();

  for(int i=0;i<mlength;i++)

  {

   //--------------------获得方法的名字

   Systemoutprintln("方法的名字是:"+m[i]getName());

   //--------------------获得方法参数的类型和有几个参数

   Class b[]=m[i]getParameterTypes();//获得所有的参数并且存放到数组B中

   for(int j=0;j<blength;j++)

   {

    Systemoutprintln("参数的类型是"+b[j]);

   }

   //--------------------获得方法返回值的类型

   Systemoutprintln(m[i]getReturnType());//获得方法的返回值类型

   //--------------------获得方法的修饰符

   int mod=m[i]getModifiers();

   Systemoutprintln("方法的修饰符有"+ModifiertoString(mod));

   //--------------------获得方法的异常类型

   Class e[]=m[i]getExceptionTypes();//获得所有的异常类型存放到数组e中

   for(int k=0;k<elength;k++)

   {

    Systemoutprintln("方法的异常类型是:"+e[k]);

   }

   Systemoutprintln("-------------------------------------------------------------------");

  }

  //----------------------------获得属性的详细信息

  

 }

}

package Class     //测试comtctestClass的forname方法获得属性信息;

import javalangreflectField;

import javalangreflectModifier;

public class test {

 public static void main(String[] args) throws ClassNotFoundException {

  Class c=ClassforName("Class测试comtctestClass的forname方法获得属性信息student");//把要使用的类加载到内存中,并且把有关这个类的所有信息都存放到对象c中

  Field f[]=cgetDeclaredFields();//把属性的信息提取出来,并且存放到field类的对象中,因为每个field的对象只能存放一个属性的信息所以要用数组去接收

  for(int i=0;i<flength;i++)

  {

   Systemoutprintln("属性的名称是:"+f[i]getName());//获得属性的名字

   Systemoutprintln("属性的类型是:"+f[i]getType());//获得属性的类型

   int mod=f[i]getModifiers();//获得修饰符的常量总和

   Systemoutprintln(mod);

   Systemoutprintln("属性的修饰符有:"+ModifiertoString(mod));//modifier类可以根据常量总和去计算到底有哪些修饰符

   Systemoutprintln("-------------------------------------------------------");

  }

 }

}

Java中要用到反射,首先就必须要获取到对应的class对象,在Java中有三种方法获取类对应的class对象。 1、通过类的class属性 2、通过类实例的getClass()方法获取

java是不支持在运行中进行强制转化的! 如果事先知道类型,可以通过强制转化实现! 如果不知道! 可以采用这种方式!

String className = objgetClass()getName(); 得到类名

然后:

A a = (A)ClassforName(className)newInstance();

//上面这句话的意思是,forName(className):静态加载className这个类;

// newInstance(),实例化一个对象

// A 代表你知道的这人类或者这个类的父类, 把强制转化成你所要的对象。

这和你

A a = new A();

是一样的效果!

用SystemcurrentTimeMillis()方法来实现 。

代码如下:

javasqlDate currentDate = new javasqlDate(SystemcurrentTimeMillis());

说明:

返回long类型,一般用于获取某个方法或其它的执行时间差,在开始前获取一次,在结束时获取一次,结束时间减去开始时间,得到执行时间。

先获取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;

    }

}

复制下面代码:

class Test{

public static void main(String[] args){

int i=1; //int类型变量

Systemoutprintln(getType(i)); //打印变量类型为int

}

public static String getType(Object o){ //获取变量类型方法

return ogetClass()toString(); //使用int类型的getClass()方法

}

}

扩展资料:

java8种基本数据类型 (4种整型+2种浮点型+1种字符型+1种逻辑型) 

4种整型:

byte-1 字节:-128~127 ;

short -2 字节:-32768~32767 ;

int-4 字节:-2^31~2^31-1;

long-8 字节:-2^63~2^63-11234。

2种浮点型

float-4 字节-32位IEEE 754单精度(有效位数6~7位);

double-8 字节-64位IEEE 754双精度(有效位数15位)。

1种字符型

char-2 字节-整个Unicode字符集。

1种逻辑型

boolean-1 字节-true或者false。

以上就是关于java 什么方法可以看类的类型全部的内容,包括:java 什么方法可以看类的类型、java反射调用怎样获得原来的类型、java 如何通过对象获取对象类全名等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/9327635.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存