public static void main(String[] args) {运行时:
String str1 = new String(), str2 = new String();
System.out.println(str1.getClass().getName());
System.out.println(str2.getClass().getName());
if(str1.getClass().equals(str2.getClass())){
System.out.println(str1 和 str2 是同一类的实例”);
}else{
System.out.println(str1 和 str2 是不同类的实例”);
}
整数 A = new Integer(1);
布尔值 B = 新布尔值(true);
System.out.println(A.getClass().getName());
System.out.println(B.getClass().getName());
if(A.getClass().equals( B.getClass())){
System.out.println(A 和 B 是同一类的实例”);
}else{
System.out.println(A 和 B 是不同类的实例”);
}
}
java.lang.String我们需要方法 newInstance() 和 forName()因为有时我们在运行时无法知道实例化类的名称,所以这些方法让我们的事情变得更简单。
java.lang.String
str1 和 str2 是同一类的实例
java.lang.Integer
java.lang.Boolean
A 和 B 是不同类的实例
try {运行时:
/*newInstance() 等价于 new String()*/
String str2 = str1.getClass().newInstance();
System.out.println(str2.getClass().getName());
System.out.println(str2.getClass().getSimpleName());
System.out.println(str2.getClass().getCanonicalName());
} catch (InstantiationException e) {
// TODO 自动生成的 catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO 自动生成的 catch block
e.printStackTrace();
}
java.lang.String还有其他方法可以测试类的类型:
String
java.lang.String
String str1 = new String();
String[] 数组 = {aa”,bb”,cc”};
String[] array2 = {fd”,be”,ce”};
System.out.println(array.getClass().isArray());true
System.out.println(array.getClass().isInstance(array2));true
System.out.println(array.getClass().isLocalClass());false
java.lang.Class button = Class.class.forName(javax.swing.JButton”);运行这段代码会导致一长串 java.lang.String,所以我们只显示构造函数和接口的列表:
System.out.println(+button.getClass()的构造函数);
构造函数<?>[] c = button.getClass().getConstructors();
for(int i=0;我System.out.println(c[i]);
System.out.println(+button.getClass()的接口);
java.lang.Class<?>[] 接口 = button.getClass().getInterfaces();
for(int i=0;我<接口长度;i++)
System.out.println(interfaces[i]);
System.out.println(+button.getClass()的方法);
方法[] m = button.getClass().getMethods();
for(int i=0;我System.out.println(m[i]);
javax.swing.JButtonReferences:
javax.swing.JButton
interface java.io.Serializable
interface java.lang.reflect.GenericDeclaration
interface java.lang.reflect.Type
interface java.lang.reflect.AnnotatedElement
Class 方法 javax.swing.JButton
public static java.lang.Class java.lang.Class.forName(java.lang.String,boolean,java.lang.ClassLoader) 抛出 java.lang.ClassNotFoundException
public static java.lang.Class java.lang.Class.forName(java.lang.String) 抛出 java.lang.ClassNotFoundException
public native boolean java.lang.Class.isAssignableFrom(java.lang.Class)
public native java.lang.Classjava.lang.Class.getSuperclass()
public 原生 java.lang.Class java.lang.Class.getComponentType()
public java.lang.String java.lang.Class.toString()
public native boolean java.lang.Class.isInstance(java.lang.Object)
public native int java.lang.Class.getModifiers()
public native boolean java.lang.Class.isInterface()
public native boolean java.lang.Class.isArray()
public native booleanjava.lang.Class.isPrimitive()
public java.lang.String java.lang.Class.getName()
public java.lang.Class java.lang.Class.asSubclass(java.lang.Class)
public java.lang.Object java.lang.Class.cast(java.lang.Object)
public java.lang.Class.getClasses()
public java.lang.reflect.Field java.lang.Class.getField(java.lang.String) 抛出 java.lang.NoSuchFieldException,java.lang.SecurityException
public java.lang.reflect.Field[] java.lang.Class.getFields() 抛出 java.lang.SecurityException
public java.lang.reflect.Method java.lang.Class.getMethod(java.lang.String,java.lang.Class[]) 抛出 java.lang.NoSuchMethodException,java.lang.SecurityException
public java.lang.Reflect.Method[] java.lang.Class.getMethods() 抛出 java.lang.SecurityException
public java.lang.Package.Class.getPackage()
publicjava.net.URL java.lang.Class.getResource(java.lang.String)
public 原生 java.lang.Object[] java.lang.Class.getSigners()
public boolean java.lang.Class.isAnnotation()
public boolean java.lang.Class.isEnum()
public boolean java.lang.Class.isLocalClass()
public boolean java.lang.Class.isSynthetic()
public java.lang.Object java.lang.Class.newInstance() 抛出 java.lang.InstantiationException,java.lang.IllegalAccessException
public 布尔值 java.lang.Class.desiredAssertionStatus()
public java.lang.annotation.Annotation java.lang.Class.getAnnotation(java.lang.Class)
public java.lang.annotation.Annotation[] java.lang.Class.getAnnotations()
public java.lang.String java.lang.Class.getCanonicalName()
public java.lang.ClassLoader java.lang.Class.getClassLoader()
publicjava.lang.reflect.构造函数 java.lang.Class.getConstructor(java.lang.Class[]) 抛出 java.lang.NoSuchMethodException,java.lang.SecurityException
public java.lang.reflect.Constructor[] java.lang.Class.getConstructors() 抛出 java.lang.SecurityException
public java.lang.annotation.Annotation[] java.lang.Class.getDeclaredAnnotations()
public java.lang.Class[] java.lang.Class.getDeclaredClasses() 抛出 java.lang.SecurityException
public java.lang.reflect.构造函数 java.lang.Class.getDeclaredConstructor(java.lang.Class[]) 抛出 java.lang.NoSuchMethodException,java.lang.SecurityException
public java.lang.reflect.Constructor[] java.lang.Class.getDeclaredConstructors() 抛出 java.lang.SecurityException
public java.lang.reflect.Field java.lang.Class.getDeclaredField(java.lang.String) 抛出 java.lang.NoSuchFieldException,java.lang.SecurityException
public java.lang.reflect.Field[] java.lang.Class.getDeclaredFields() 抛出 java.lang.SecurityException
public java.lang.reflect.Method java.lang.Class.getDeclaredMethod(java.lang.String,java.lang.Class[]) 抛出 java.lang.NoSuchMethodException,java.lang.SecurityException
public java.lang.reflect.Method[] java.lang.Class.getDeclaredMethods() 抛出 java.lang.SecurityException
public native java.lang.Classjava.lang.Class.getDeclaringClass()
public java.lang.Class java.lang.Class.getEnclosingClass()
public java.lang.reflect.Constructor java.lang.Class.getEnclosingConstructor()
public java.lang.reflect.method java.lang.Class.getEnclosingMethod()
public java.lang.Object[] java.lang.Class.getEnumConstants()
public java.lang.reflect.Type[] java.lang.Class.getGenericInterfaces()
publicjava.lang.reflect.Type java.lang.Class.getGenericSuperclass()
public native java.lang.Class[] java.lang.Class.getInterfaces()
public java.security.ProtectionDomain java.lang.Class.getProtectionDomain()
public java.io.InputStream java.lang.Class.getResourceAsStream(java.lang.String)
public java.lang.String java.lang.Class.getSimpleName()
public java.lang.reflect.TypeVariable[] java.lang.Class.getTypeParameters()
public boolean java.lang.Class.isAnnotationPresent(java.lang.Class)
public boolean java.lang.Class.isAnonymousClass()
public boolean java.lang.Class.isMemberClass()
public final void java.lang.Object.wait(long,int) throws java.lang.InterruptedException
public final native void java.lang.Object.wait(long) throws java.lang.InterruptedException
public final void java.lang.Object.wait() 抛出java.lang.InterruptedException
public 布尔值 java.lang.Object.equals(java.lang.Object)
public native int java.lang.Object.hashCode()
public final native java.lang.Class java.lang.Object.getClass()
public final native void java.lang.Object.notify()
public final native void java.lang.Object.notifyAll()
Please disable your ad blocker and refresh the window to use this website.