import java.io.bufferedreader;
import java.io.inputstreamreader;
import java.lang.reflect.method;
import java.lang.reflect.modifier;
public class test {
public static void main(string[] args) throws exception {
// bufferedreader bb=new bufferedreader(new inputstreamreader(system.in));
// string classname=bb.readline();
class c=class.forname("arraylisttest.java");
//-------------------获取方法的详细信息
method m[]=c.getdeclaredmethods();
for(int i=0;i<m.length;i++)
{
//--------------------获得方法的名字
system.out.println("方法的名字是:"+m[i].getname());
//--------------------获得方法参数的类型和有几个参数
class b[]=m[i].getparametertypes();//获得所有的参数并且存放到数组b中
for(int j=0;j<b.length;j++)
{
system.out.println("参数的类型是"+b[j]);
}
//--------------------获得方法返回值的类型
system.out.println(m[i].getreturntype());//获得方法的返回值类型
//--------------------获得方法的修饰符
int mod=m[i].getmodifiers();
system.out.println("方法的修饰符有"+modifier.tostring(mod));
//--------------------获得方法的异常类型
class e[]=m[i].getexceptiontypes();//获得所有的异常类型存放到数组e中
for(int k=0;k<e.length;k++)
{
system.out.println("方法的异常类型是:"+e[k]);
}
system.out.println("-------------------------------------------------------------------");
}
//----------------------------获得属性的详细信息
}
}
package class //测试.com.tc.test.class的forname方法获得属性信息;
import java.lang.reflect.field;
import java.lang.reflect.modifier;
public class test {
public static void main(string[] args) throws classnotfoundexception {
class c=class.forname("class测试.com.tc.test.class的forname方法获得属性信息.student");//把要使用的类加载到内存中,并且把有关这个类的所有信息都存放到对象c中
field f[]=c.getdeclaredfields();//把属性的信息提取出来,并且存放到field类的对象中,因为每个field的对象只能存放一个属性的信息所以要用数组去接收
for(int i=0;i<f.length;i++)
{
system.out.println("属性的名称是:"+f[i].getname());//获得属性的名字
system.out.println("属性的类型是:"+f[i].gettype());//获得属性的类型
int mod=f[i].getmodifiers();//获得修饰符的常量总和
system.out.println(mod);
system.out.println("属性的修饰符有:"+modifier.tostring(mod));//modifier类可以根据常量总和去计算到底有哪些修饰符
system.out.println("-------------------------------------------------------");
}
}
}
以上就是java怎么获得一个类的属性和类型?的详细内容。