📅  最后修改于: 2023-12-03 15:16:02.620000             🧑  作者: Mango
Java.lang.Class
类是Java语言中基础的类之一。它表示一个类的元素,例如类的名称、类的实例、类的构造函数、成员函数等等。在Java中,每个类都有一个对应的Class
对象。
Java.lang.Class
对象Java.lang.Class
对象可以通过以下方式获取:
getClass()
方法可以获取到对应的Class
对象。示例代码如下:String str = "Hello World";
Class<? extends String> cls = str.getClass();
System.out.println(cls.getName()); // 输出java.lang.String
Class
对象。使用方式如下:Class<String> cls = String.class;
System.out.println(cls.getName()); // 输出java.lang.String
Class
对象。代码示例如下:Class<?> cls = Class.forName("java.lang.String");
System.out.println(cls.getName()); // 输出java.lang.String
Java.lang.Class
类提供了一系列有用的方法,以下是一部分常用方法:
getMethods()
: 获取类中的所有public方法getMethod(String name, Class<?>... parameterTypes)
: 获取指定名称和参数类型的public方法getConstructors()
: 获取类的所有public构造函数getConstructor(Class<?>... parameterTypes)
: 获取指定参数类型的public构造函数getFields()
: 获取类中的所有public字段getField(String name)
: 获取指定名称的public字段newInstance()
: 创建该Class
对象所表示的类的新实例以下是一个示例程序,演示如何通过Java.lang.Class
类获取类中的方法、构造函数、字段。
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
public class ClassDemo {
public static void main(String[] args) throws Exception {
// 获取String类的Class对象
Class<?> strCls = Class.forName("java.lang.String");
// 获取String类中的方法
Method[] methods = strCls.getMethods();
System.out.println("String类中的方法有:");
for (Method method : methods) {
System.out.println(method.getName());
}
// 获取String类中的构造函数
Constructor<?>[] constructors = strCls.getConstructors();
System.out.println("String类中的构造函数有:");
for (Constructor<?> constructor : constructors) {
System.out.println(constructor.getName());
}
// 获取String类中的字段
Field[] fields = strCls.getFields();
System.out.println("String类中的字段有:");
for (Field field : fields) {
System.out.println(field.getName());
}
}
}
该程序将输出以下内容:
String类中的方法有:
equals
toString
hashCode
charAt
codePointAt
codePointBefore
codePointCount
compareTo
compareToIgnoreCase
concat
contains
endsWith
equalsIgnoreCase
format
getBytes
getChars
indexOf
intern
isEmpty
join
lastIndexOf
length
lines
matches
offsetByCodePoints
regionMatches
repeat
replace
replaceAll
replaceFirst
split
startsWith
strip
subSequence
substring
toCharArray
toLowerCase
toString
toUpperCase
trim
valueOf
String类中的构造函数有:
public java.lang.String(byte[],java.nio.charset.Charset)
public java.lang.String(byte[],int,int,java.nio.charset.Charset)
public java.lang.String(byte[],int,java.nio.charset.Charset)
public java.lang.String(byte[],int,int)
public java.lang.String(byte[],int,int,java.lang.String)
public java.lang.String(byte[],java.lang.String)
public java.lang.String(byte[],int,int,int)
public java.lang.String(byte[])
public java.lang.String(java.lang.StringBuilder)
public java.lang.String(java.lang.StringBuffer)
public java.lang.String(char[],int,int)
public java.lang.String(char[])
public java.lang.String(java.lang.String)
String类中的字段有:
CASE_INSENSITIVE_ORDER
serialVersionUID
UTF_8
以上就是Java.lang.Class
类的介绍和使用方式。通过Java.lang.Class
类,我们可以获取类中的方法、构造函数、字段等信息,为程序设计和开发提供很多便利。