导航:首页 > 编程语言 > java获取类的类型

java获取类的类型

发布时间:2022-05-02 03:24:23

java 获取对象的数据类型的方法

使用getClass方法可以获取一个对象的类型类,然后在调用该类的方法可以获取该类的相关信息,比如父类的名字,该类的名字等等:

packagetest;

importjava.lang.reflect.Field;
importjava.lang.reflect.Method;


publicclassDemo2{
Stringusername="sss";
publicstaticvoidmain(String[]args),IllegalAccessException,NoSuchFieldException,SecurityException,NoSuchMethodException{

Demo2t=newDemo2();
if(Demo2.class==t.getClass()){
System.out.println("equal");
}

//获取类名
System.out.println(t.getClass().getName());
//获取父类名
System.out.println(t.getClass().getSuperclass());
//获取类中某个属性
Fieldf=t.getClass().getField("username");
//获取类中某个方法
Methodm=t.getClass().getDeclaredMethod("main",String[].class);

}
}

⑵ 如何通过Java反射获取一个类属性的类型要类型Class<

先获取Method对象

以下仅供参考

packagecom.kidd.test.;

importjava.lang.reflect.Method;

/**
*Helloworld!
*
*/
publicclassMain{

publicstaticvoidmain(String[]args){
Methodmethod1=null;
Methodmethod2=null;
try{
method1=Class.forName("com.kidd.test..Cat").getMethod("getName",(Class<?>[])null);
method2=Class.forName("com.kidd.test..Cat").getMethod("getChilds",(Class<?>[])null);
}catch(NoSuchMethodExceptionex){
ex.printStackTrace();
}catch(SecurityExceptionex){
ex.printStackTrace();
}catch(ClassNotFoundExceptionex){
ex.printStackTrace();
}

if(null!=method1){
System.out.println(method1.getGenericReturnType().getTypeName());
}

if(null!=method2){
System.out.println(method2.getGenericReturnType().getTypeName());
}
}

}

classCat{

privateStringname;
privateCat[]childs;

publicStringgetName(){
returnname;
}

publicvoidsetName(Stringname){
this.name=name;
}

publicCat[]getChilds(){
returnchilds;
}

publicvoidsetChilds(Cat[]childs){
this.childs=childs;
}

}

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

importJava.io.BufferedReader;
importjava.io.InputStreamReader;
importjava.lang.reflect.Method;
importjava.lang.reflect.Modifier;
publicclasstest{
publicstaticvoidmain(String[]args)throwsException{
//BufferedReaderbb=newBufferedReader(newInputStreamReader(System.in));
//Stringclassname=bb.readLine();
Classc=Class.forName("ArrayListTest.java");
//-------------------获取方法的详细信息
Methodm[]=c.getDeclaredMethods();
for(inti=0;i<m.length;i++)
{
//--------------------获得方法的名字
System.out.println("方法的名字是:"+m[i].getName());
//--------------------获得方法参数的类型和有几个参数
Classb[]=m[i].getParameterTypes();//获得所有的参数并且存放到数组B中
for(intj=0;j<b.length;j++)
{
System.out.println("参数的类型是"+b[j]);
}
//--------------------获得方法返回值的类型
System.out.println(m[i].getReturnType());//获得方法的返回值类型
//--------------------获得方法的修饰符
intmod=m[i].getModifiers();
System.out.println("方法的修饰符有"+Modifier.toString(mod));
//--------------------获得方法的异常类型
Classe[]=m[i].getExceptionTypes();//获得所有的异常类型存放到数组e中
for(intk=0;k<e.length;k++)
{
System.out.println("方法的异常类型是:"+e[k]);
}
System.out.println("-------------------------------------------------------------------");
}
//----------------------------获得属性的详细信息

}
}
packageClass//测试.com.tc.test.Class的forname方法获得属性信息;
importjava.lang.reflect.Field;
importjava.lang.reflect.Modifier;
publicclasstest{
publicstaticvoidmain(String[]args)throwsClassNotFoundException{
Classc=Class.forName("Class测试.com.tc.test.Class的forname方法获得属性信息.student");//把要使用的类加载到内存中,并且把有关这个类的所有信息都存放到对象c中
Fieldf[]=c.getDeclaredFields();//把属性的信息提取出来,并且存放到field类的对象中,因为每个field的对象只能存放一个属性的信息所以要用数组去接收
for(inti=0;i<f.length;i++)
{
System.out.println("属性的名称是:"+f[i].getName());//获得属性的名字
System.out.println("属性的类型是:"+f[i].getType());//获得属性的类型
intmod=f[i].getModifiers();//获得修饰符的常量总和
System.out.println(mod);
System.out.println("属性的修饰符有:"+Modifier.toString(mod));//modifier类可以根据常量总和去计算到底有哪些修饰符
System.out.println("-------------------------------------------------------");
}
}
}

⑷ Java如何获得一个类里面的各个属性和类型

使用反射可以获取到;

代码如下:

importjava.lang.reflect.Field;//这是需要引入的包
Field[]f=类名.class.getDeclaredFields();//获取该类的字段(public,protected,default(package)access,andprivate)
for(Fieldff:f)//遍历字段
{
System.out.println(ff.getType());//获取字段类型
System.out.println(ff.getName());//获取字段名
}

⑸ 在java中 如何获取变量的类型

java中获取变量的类型可以使用每个类型的getClass()方法来获得,示例如下:

classTest
{
publicstaticvoidmain(String[]args)
{
inti=1;//int类型变量
System.out.println(getType(i));//打印变量类型为int
}
publicstaticStringgetType(Objecto){//获取变量类型方法
returno.getClass().toString();//使用int类型的getClass()方法
}
}

⑹ java怎么根据类名称得到一个类型

Java 提供了Class类来通过类名获取对象。
下面请看示例:
先声明一个Userinfo.java类。

public class Userinfo {
private String name;
private String password;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
声明一个主类。

public class Test {
public static void main(String[] args) throws Exception {
@SuppressWarnings("unchecked")
Class<Userinfo> c = (Class<Userinfo>) Class.forName("Userinfo");
//通过newInstance()获取对象实例。
Userinfo u = c.newInstance();
try {
System.out.println(Class.forName("Userinfo"));
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}

⑺ JAVA通过类类型动态获取类型,例如我如何通过string.class获取string这个类型,是

字节码对象是无法直接获取这个类型的,不过Class类中有几种方法你可以参考一下:
isInstance(Object obj)
如果obj是这个字节码对象的子类或者实现类,或者就是这个类的对象,那么直接返回true。
isAssignableFrom(类<?> cls)
确定由此类对象表示的类或接口是否与由指定的Class
类表示的类或接口相同或是超类或类接口。

⑻ 在JAVA中怎么取得一个变量的类型

对于包装类型变量,是可以直接获得的,变量名称.getClass().getName();

示例:

lass Test

{

public static void main(String[] args)

{

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

System.out.println(getType(i)); //打印变量类型为int

}

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

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

}

}

(8)java获取类的类型扩展阅读

变量的使用注意事项:

Java中的变量必须声明后才能进行使用;

变量的作用域:在一对{}中为有效区间;

需要进行初始化后才能使用变量;

数据类型 变量名 = 初始化值;

变量的使用是通过变量名来访问所指向的内存区域中存储的值。

阅读全文

与java获取类的类型相关的资料

热点内容
职业生涯pdf 浏览:954
ubuntu安装软件php 浏览:159
黑马程序员退学流程 浏览:362
网页服务器崩溃怎么回事 浏览:651
cnc编程前景怎么样 浏览:320
lniux命令详解 浏览:493
linuxmysql查询日志 浏览:368
老捷达伙伴压缩比 浏览:94
改后缀加密 浏览:433
邮局选址问题算法 浏览:14
河北服务器内存云主机 浏览:13
在电脑上怎么找到加密狗图标 浏览:436
电脑的浏览器怎么打开pdf文件怎么打开 浏览:143
pdf卡片库下载 浏览:12
单片机中二进制表示什么 浏览:726
java网络编程推荐 浏览:796
施耐德开关编程 浏览:68
组织胚胎学pdf 浏览:845
linux查看发包 浏览:497
加密货币交易所暴利时代 浏览:825