⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 classinfo.java

📁 JAVA编程思想第四版英文原版习题答案. pdf原版的
💻 JAVA
字号:
// typeinfo/ClassInfo.java
// TIJ4 Chapter TypeInfo, Exercise 20, page 593
/* Look up the interface for java.lang.Class in the JDK decumentation from 
* http://java.sun.com. Write a program that takes the name of a class as a
* command line argument, then uses the Class methods to dump all the 
* information available for that class. Test your prgram with a standard
* library class and a class you create.
*/
import static org.greggordon.tools.Print.*;
import java.lang.reflect.*;
import java.lang.annotation.*;

public class ClassInfo {
	public static void main(String[] args) {
		if(args.length < 1) {
			println("Usage: name of class");
			System.exit(0);
		}
		Class<?> c = null;
		try {
			c = Class.forName(args[0]);
		} catch(ClassNotFoundException e) {
			println("No such class: " + e);
		}
		println("c: " + c);
		println("c.getAnnotations(): ");
		if(c.getAnnotations().length == 0) println("none");
		for(Annotation a : c.getAnnotations())
			println(a);
		println("c.getCanonicalName(): " + c.getCanonicalName());
		println("c.getClasses(): ");
		if(c.getClasses().length == 0) println("none");
		for(Class cl : c.getClasses())
			println(cl);
		println("c.getClassLoader(): " + c.getClassLoader());
		println("c.getConstructors(): ");
		if(c.getConstructors().length == 0) println("none");
		for(Constructor ctor : c.getConstructors())
			println(ctor);
		println("c.getDeclaredAnnotations(): ");
		if(c.getDeclaredAnnotations().length == 0) println("none");
		for(Annotation a : c.getDeclaredAnnotations())
			println(a);
		println("c.getDeclaredClasses(): ");
		if(c.getDeclaredClasses().length == 0) println("none");
		for(Class cl : c.getDeclaredClasses())
			println(cl);
		println("c.getDeclaredConstructors(): ");
		if(c.getDeclaredConstructors().length == 0) println("none");
		for(Constructor ctor : c.getDeclaredConstructors())
			println(ctor);
		println("c.getDeclaredFields(): ");
		if(c.getDeclaredFields().length == 0) println("none");
		for(Field f : c.getDeclaredFields())
			println(f);
		println("c.getDeclaredMethods(): ");
		if(c.getDeclaredMethods().length == 0) println("none");
		for(Method m : c.getDeclaredMethods())
			println(m);
		println("c.getDeclaringClass(): " + c.getDeclaringClass());
		println("c.getEnclosingConstructor(): " + c.getEnclosingConstructor());
		println("c.getEnclosingMethod(): " + c.getEnclosingMethod());
		println("c.getEnumConstants(): " + c.getEnumConstants());
		println("c.getDeclaredFields(): ");
		if(c.getFields().length == 0) println("none");
		for(Field f : c.getFields())
			println(f);
		println("c.getGenericInterfaces(): ");
		if(c.getGenericInterfaces().length == 0) println("none");
		for(Type t : c.getGenericInterfaces())
			println(t);
		println("c.getGenericSuperclass(): " + c.getGenericSuperclass());
		println("c.getInterfaces(): ");
		if(c.getInterfaces().length == 0) println("none");
		for(Class i : c.getInterfaces())
			println(i);
		println("c.getMethods(): ");
		if(c.getMethods().length == 0) println("none");
		for(Method m : c.getMethods())
			println(m);
		println("c.getModifiers(): " + c.getModifiers());
		println("c.getName(): " + c.getName());
		println("c.getPackage(): " + c.getPackage());
		println("c.getProtectionDomain(): " + c.getProtectionDomain());
		print("c.getSigners(): ");
		if(c.getSigners() == null)
			println(c.getSigners());
		if(c.getSigners() != null) {
			println();
			if(c.getSigners().length == 0) println("none");
			if(c.getSigners().length > 0) {
				for(Object s : c.getSigners()) 
					println(s);
			}
		}
		println("c.getSimpleName(): " + c.getSimpleName());
		println("c.getSuperclass(): " + c.getSuperclass());
		println("c.getTypeParameters(): " + c.getTypeParameters());
		println("c.isAnnotation(): " + c.isAnnotation());
		println("c.isAnnotationPresent(Documented.class): " + c.isAnnotationPresent(Documented.class));
		println("c.isAnonymousClass(): " + c.isAnonymousClass());
		println("c.isArray(): " + c.isArray());
		println("c.isAssignableFrom(ClassInfo.class): " + c.isAssignableFrom(ClassInfo.class));
		println("c.isAssignableFrom(Object.class): " + c.isAssignableFrom(Object.class));
		println("c.isEnum(): " + c.isEnum());
		println("c.isInstance(Object.class): " + c.isInstance(Object.class));
		println("c.isInterface(): " + c.isInterface());
		println("c.isLocalClass(): " + c.isLocalClass());
		println("c.isMemberClass(): " + c.isMemberClass());
		println("c.isPrimitive(): " + c.isPrimitive());
		println("c.isSynthetic(): " + c.isSynthetic());		
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -