import java.lang.reflect.*;
class Person
{
private String name;
private int age;
public Person(String name,int age)
{
this.name=name;
this.age=age;
}
public Person()
{
name="zhangsan";
age=20;
}
public String toString()
{
return "name="+" "+name+" "+"age="+" "+age;
}
}class Student extends Person
{
private String school;
public Student(String name,int age,String school)
{
super(name,age);
this.school=school;
}
public Student()
{
super();
school="liaoningshiyou";
}
public static void main(String[]args)
{
try
{
String name=null;
if(args.length>0) name=args[0];
Class c1=Class.forName(name);
Class c2=c1.getSuperclass();
System.out.print("class"+" "+name);
if(c2!=null&&!c2.equals(Object.class))
System.out.print(" "+"extends"+" "+c2.getName());
System.out.println();
System.out.println("{");
System.out.println();
printConstructor(c1);
printMethod(c1);
printField(c1);
System.out.println("}");
}
catch(Exception e)
{
e.printStackTrace();
}
}
public static void printConstructor(Class c)
{
Constructor []constructors=c.getDeclaredConstructors();
for(int i=0;i<constructors.length;i++)
{
Constructor cs=constructors[i];
Class[]cl=cs.getParameterTypes();
System.out.print(Modifier.toString(cs.getModifiers())+" ");
System.out.print(cs.getName()+"(");
for(int j=0;j<cl.length;j++)
{
if(j>0)System.out.print(",");
else if(j==0)System.out.print(" ");
System.out.print(cl[j].getName());
}
System.out.print(")");
System.out.println();
}
}
public static void printMethod(Class c)
{
Method []methods=c.getDeclaredMethods();
for(int i=0;i<methods.length;i++)
{
Method m=methods[i];
Class[]cl=m.getParameterTypes();
System.out.print(Modifier.toString(m.getModifiers())+" ");
System.out.print(m.getReturnType().getName()+" ");
System.out.print(m.getName()+"(");
for(int j=0;j<methods.length;j++)
{
if(j>0) System.out.print(",");
else if(j==0)System.out.print(" ");
else System.out.print(cl[j].getName());
}
System.out.print(")");
System.out.println();
}
}
public static void printField(Class c)
{
Field[]fields=c.getDeclaredFields();
for(int i=0;i<fields.length;i++)
{
Field f=fields[i];
System.out.print(Modifier.toString(f.getModifiers())+" ");
System.out.print(f.getType().getName()+" ");
System.out.print(f.getName());
System.out.println();
}
}
}
输出结果中有一行是static java.long.Class class$<.....> 请问这是什么啊
class Person
{
private String name;
private int age;
public Person(String name,int age)
{
this.name=name;
this.age=age;
}
public Person()
{
name="zhangsan";
age=20;
}
public String toString()
{
return "name="+" "+name+" "+"age="+" "+age;
}
}class Student extends Person
{
private String school;
public Student(String name,int age,String school)
{
super(name,age);
this.school=school;
}
public Student()
{
super();
school="liaoningshiyou";
}
public static void main(String[]args)
{
try
{
String name=null;
if(args.length>0) name=args[0];
Class c1=Class.forName(name);
Class c2=c1.getSuperclass();
System.out.print("class"+" "+name);
if(c2!=null&&!c2.equals(Object.class))
System.out.print(" "+"extends"+" "+c2.getName());
System.out.println();
System.out.println("{");
System.out.println();
printConstructor(c1);
printMethod(c1);
printField(c1);
System.out.println("}");
}
catch(Exception e)
{
e.printStackTrace();
}
}
public static void printConstructor(Class c)
{
Constructor []constructors=c.getDeclaredConstructors();
for(int i=0;i<constructors.length;i++)
{
Constructor cs=constructors[i];
Class[]cl=cs.getParameterTypes();
System.out.print(Modifier.toString(cs.getModifiers())+" ");
System.out.print(cs.getName()+"(");
for(int j=0;j<cl.length;j++)
{
if(j>0)System.out.print(",");
else if(j==0)System.out.print(" ");
System.out.print(cl[j].getName());
}
System.out.print(")");
System.out.println();
}
}
public static void printMethod(Class c)
{
Method []methods=c.getDeclaredMethods();
for(int i=0;i<methods.length;i++)
{
Method m=methods[i];
Class[]cl=m.getParameterTypes();
System.out.print(Modifier.toString(m.getModifiers())+" ");
System.out.print(m.getReturnType().getName()+" ");
System.out.print(m.getName()+"(");
for(int j=0;j<methods.length;j++)
{
if(j>0) System.out.print(",");
else if(j==0)System.out.print(" ");
else System.out.print(cl[j].getName());
}
System.out.print(")");
System.out.println();
}
}
public static void printField(Class c)
{
Field[]fields=c.getDeclaredFields();
for(int i=0;i<fields.length;i++)
{
Field f=fields[i];
System.out.print(Modifier.toString(f.getModifiers())+" ");
System.out.print(f.getType().getName()+" ");
System.out.print(f.getName());
System.out.println();
}
}
}
输出结果中有一行是static java.long.Class class$<.....> 请问这是什么啊
你的程序就是输入一个类名, 程序将输出这个类的有关字段域、方法、构造函数!
输入:java.lang.Class
输出:
class java.lang.Class
{private java.lang.Class()
public native boolean isInstance( ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)
public native int getModifiers( ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)
private java.lang.Object newInstance0( ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)
public static java.lang.Class forName( ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)
public static java.lang.Class forName( ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)
private static native java.lang.Class forName0( ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,)
public native java.lang.String getName
。
private static sun.reflect.ReflectionFactory reflectionFactory
private static boolean initted
static java.lang.Class class$java$lang$Class
}太长了 中间省略了
这个是字段吗
怎么会出现这个呢