Class类相关

Posted Kooing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Class类相关相关的知识,希望对你有一定的参考价值。

Class类是java.lang包中的类,该类的实例可以帮助程序创建其他类的实例或者取得其他类的对象的内部信息

使用class类获得一个类相关的class类(注意得到的是class类,不是相关的类) 比如类名 classFuck类

有类方法(静态方法)public static Class forName(String classFuck)throw ClassNotFoundException

然后我们用Class对象调用以下方法(classFuck必须有一个无参构造函数

public Object newInstance() throws InstantiationException,IllegalAccessException

我们就可以拥有了一个classFuck类的实体

try{
            Class cs=Class.forName("A");//这里用string的形式
            A a=(A)cs.newInstance();//这里用回一个(A)
            System.out.println(a.f());
        }
        catch(Exception a){
            System.out.println(a.getMessage());
        }

如果我们有了一个实例了,我们可以用getClass()的方法,返回一个和对象相关class 实例

这个class有以下方法可以了解到classfuck类的信息

String getName()

Constructor[] getConstructors()//返回类的所有构造方法

Field[] getDeclaredFields()//返回类的全部成员变量

Method[] getDeclareMethods()//返回类的全部方法

import java.util.regex.*;
import java.lang.reflect.*;
import java.util.Scanner;
public class test{
    public static void main(String args[]){
        A a=new A();
        Class b=a.getClass();
        System.out.println(b.getName());
        Constructor[] c=b.getDeclaredConstructors();
        Field[] d=b.getDeclaredFields();
        Method[] e=b.getDeclaredMethods();
        for(int i=0;i<c.length;i++){
            System.out.println(c[i].toString());
        }
        for(int i=0;i<d.length;i++){
            System.out.println(d[i].toString());
        }
        for(int i=0;i<e.length;i++){
            System.out.println(e[i].toString());
        }
    }
}

class A{
    int a=2,b=3;
    int f(){
        return a*b;
    }
    void ff(){
        System.out.println("fuck");
    }
    A(int a,int b){
        this.a=a;
        this.b=b;
    }
    A(){}
}

 

以上是关于Class类相关的主要内容,如果未能解决你的问题,请参考以下文章

AJAX相关JS代码片段和部分浏览器模型

从无关类调用片段中的方法

Python类OOPs概念[重复]

spring练习,在Eclipse搭建的Spring开发环境中,使用set注入方式,实现对象的依赖关系,通过ClassPathXmlApplicationContext实体类获取Bean对象(代码片段

反射机制入门

反射机制入门