使用3种方法通过反射获取相应的对象。获取的class对象分别赋值给studentClass1,studentClass2,studentClass3
时间: 2023-12-03 07:43:09 浏览: 28
假设有一个名为Student的类,我们可以使用以下三种方法获取它的Class对象:
1. 使用Class.forName方法
```java
Class<?> studentClass1 = null;
try {
studentClass1 = Class.forName("com.example.Student");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
```
2. 使用类的class属性
```java
Class<?> studentClass2 = Student.class;
```
3. 使用对象的getClass方法
```java
Student student = new Student();
Class<?> studentClass3 = student.getClass();
```
上述三种方法获取的Class对象都是相同的,可以根据具体情况选择使用。
相关问题
据提示,在右侧编辑器补充代码,使用3种方法通过反射获取相应的对象。获取的class对象分别赋值给studentClass1,studentClass2,studentClass3
假设我们有一个名为Student的类,以下是获取该类的Class对象的三种方法:
1. 使用类名.class方法:
```
Class<Student> studentClass1 = Student.class;
```
2. 使用对象.getClass()方法:
```
Student student = new Student();
Class<? extends Student> studentClass2 = student.getClass();
```
3. 使用Class.forName()方法:
```
Class<?> studentClass3 = Class.forName("包名.Student");
```
需要注意的是,第三种方法需要提供完整的类名,包括包名。如果类位于默认包中,则只需要提供类名即可。
补充代码,使用3种方法通过反射获取相应的对象。获取的class对象分别赋值给studentClass1,studentClass2,studentClass3。package step1; public class Reflection{ public static void main(String[] args) { Class <?> studentClass1 = null; Class <?> studentClass2 = null; Class <?> studentClass3 = null; // ---------------------Begin------------------------ // Studnet 类的路径为 "step1.Student" // ---------------------End------------------------ System.out.println(studentClass1); System.out.println(studentClass2); System.out.println(studentClass3); } }
package step1;
public class Reflection {
public static void main(String[] args) {
Class<?> studentClass1 = null;
Class<?> studentClass2 = null;
Class<?> studentClass3 = null;
// 方法一:通过类名.class获取Class对象
studentClass1 = Student.class;
// 方法二:通过对象.getClass()获取Class对象
Student student = new Student();
studentClass2 = student.getClass();
// 方法三:通过Class.forName获取Class对象
try {
studentClass3 = Class.forName("step1.Student");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
System.out.println(studentClass1);
System.out.println(studentClass2);
System.out.println(studentClass3);
}
}