import
java.lang.reflect.Constructor;
import
java.lang.reflect.Field;
import
java.lang.reflect.Method;
import
java.lang.reflect.Modifier;
import
java.util.Scanner;
public class
TestClass
{
public static
void
main
(
String
[]
args
) {
System.out.print
(
"请输入类名:"
)
;
Scanner in =
new
Scanner
(
System.in
)
;
String s =
null
;
Class c =
null
;
while
(
in.hasNext
()) {
try
{
s = in.nextLine
()
;
c = Class.forName
(
s
)
;
break
;
}
catch
(
ClassNotFoundException e
) {
System.out.print
(
"类名不存在,请重新输入:"
)
;
}
}
Class superclass = c.getSuperclass
()
;
Class
[]
interfaces = c.getInterfaces
()
;
// 类头:
System.out.print
(
Modifier.toString
(
c.getModifiers
())
+
" class "
+ c.getSimpleName
()
+
" extends "
+ superclass.getSimpleName
())
;
if
(
interfaces !=
null
) {
System.out.print
(
" implements"
)
;
for
(
int
i =
0
; i < interfaces.length; i++
) {
if
(
i ==
0
) {
System.out.print
(
" "
+ interfaces
[
i
]
.getSimpleName
())
;
}
else
{
System.out.print
(
", "
+ interfaces
[
i
]
.getSimpleName
())
;
}
}
}
System.out.println
(
" {"
)
;
// 属性:
Field
[]
fields = c.getDeclaredFields
()
;
for
(
Field f : fields
) {
System.out.println
(
"\t"
+ Modifier.toString
(
f.getModifiers
())
+
" "
+ f.getType
()
.getSimpleName
()
+
" "
+ f.getName
()
+
";"
)
;
}
System.out.println
()
;
Constructor
[]
constructors = c.getDeclaredConstructors
()
;
for
(
Constructor con : constructors
) {
System.out.print
(
"\t"
+ Modifier.toString
(
con.getModifiers
())
+
" "
+ c.getSimpleName
()
+
" ("
)
;
Class
[]
paras = con.getParameterTypes
()
;
for
(
int
i =
0
; i < paras.length; i++
) {
if
(
i >
0
) {
System.out.print
(
" ,"
)
;
}
System.out.print
(
paras
[
i
]
.getSimpleName
())
;
}
System.out.println
(
") {}"
)
;
}
System.out.println
()
;
// 方法:
Method
[]
methods = c.getDeclaredMethods
()
;
for
(
Method m : methods
) {
System.out.print
(
"\t"
+ Modifier.toString
(
m.getModifiers
())
+
" "
+ m.getReturnType
()
.getSimpleName
()
+
" "
+ m.getName
()
+
"("
)
;
Class
[]
paras = m.getParameterTypes
()
;
for
(
int
i =
0
; i < paras.length; i++
) {
if
(
i >
0
) {
System.out.print
(
" ,"
)
;
}
System.out.print
(
paras
[
i
]
.getSimpleName
())
;
}
System.out.println
(
");"
)
;
}
System.out.println
(
"}"
)
;
}
}
import
import
import
import
public
}