编写Java反射代码示例
时间: 2023-04-08 21:02:48 浏览: 71
可以回答这个问题,以下是一个Java反射代码示例:
```
import java.lang.reflect.*;
public class Example {
public static void main(String[] args) {
try {
Class<?> c = Class.forName("java.util.ArrayList");
Method[] methods = c.getDeclaredMethods();
for (Method method : methods) {
System.out.println(method.getName());
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}
```
这个示例使用Java反射机制获取了`java.util.ArrayList`类中的所有方法,并打印出了它们的名称。
相关问题
java反射如何编写
Java 反射是 Java 语言的一种功能,允许在运行时获取类的信息并且可以动态创建对象,调用方法和访问字段。
要使用 Java 反射,需要以下步骤:
1. 获取类的 Class 对象:可以通过 Class.forName() 方法或者类名.class 语法获取类的 Class 对象。
2. 获取类的信息:可以使用 Class 对象的 getDeclaredMethods() 和 getDeclaredFields() 等方法获取类的方法和字段信息。
3. 创建类的实例:可以使用 Class 对象的 newInstance() 方法创建类的实例。
4. 调用方法:可以使用 Method 对象的 invoke() 方法调用方法。
5. 访问字段:可以使用 Field 对象的 get() 和 set() 方法访问字段。
下面是一个简单的 Java 反射代码示例:
```
import java.lang.reflect.*;
public class ReflectExample {
public static void main(String[] args) {
try {
Class<?> cls = Class.forName("java.util.Date");
Object obj = cls.newInstance();
Method method = cls.getDeclaredMethod("toString");
String result = (String) method.invoke(obj);
System.out.println(result);
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
编写代码实现Java注解
好的,以下是一段用于自定义Java注解的示例代码:
```java
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Retention(RetentionPolicy.RUNTIME) // 设置注解保留时间为运行时
@Target(ElementType.METHOD) // 设置注解适用范围为方法
public @interface MyAnnotation {
String name() default ""; // 定义注解属性name,默认值为""
int age() default 0; // 定义注解属性age,默认值为0
}
```
这段代码定义了一个名为MyAnnotation的注解,该注解有两个属性:name和age。其中,name属性类型为String,age属性类型为int,两个属性都有默认值。
接下来是一个使用该注解的示例:
```java
public class MyClass {
@MyAnnotation(name = "张三", age = 20) // 使用自定义注解,设置name和age属性值
public void doSomething() {
// 方法内容
}
}
```
这段代码中,我们在doSomething()方法上使用了自定义注解MyAnnotation,并设置了name和age属性的值。在编译时,注解信息会被编译器存储在class文件中,运行时可以通过反射机制获取到注解信息。