1 注解
(1) 注解(Annotation)也被称为元数据(Metadata),用于修饰包、方法、属性、构造器、局部变量等数据信息。
(2) 注解不影响程序逻辑,但注解可以被编译或运行。
(3) 在JavaSE中,注解的使用目的比较简单,例如标记过时的功能,忽略警告等。在JavaEE中注解占据了更重要的角色,例如用来配置应用程序的任何切面,代替JavaEE旧版中所遗留的繁冗代码和XML配置等。
2 常用注解
(1) @Override: 限定某个函数必须重载其他函数,该注解只能用于函数
(2) @Deprecated:用于表示某个程序元素(类、函数)已过时
(3) @SuppressWarnings:抑制编译器警告
3 元注解
修饰其他注解的注解,就被称为元注解。
(1) Retention:指定注解的作用范围
(2) Target:指定注解可以用在哪些地方
(3) Document:注定注解是否出出现在javadoc中
(4) Inherited:子类会继承父类的注解
10.2 反射
反射:动态引入类、动态调用实例的成员函数、成员变量等。
10.2.1 常用API
(1) java.lang.Class
(2) java.lang.reflect.Method
(3) java.lang.reflect.Field
(4) java.lang.reflect.Constructor
package org.yxc; public class Calculator { public String name; public Calculator() {} public Calculator(String name) { this.name = name; } public int add(int a, int b) { return a + b; } }
package org.yxc; import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; public class Main { public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException, NoSuchMethodException, InvocationTargetException, NoSuchFieldException { Class<?> cls = Class.forName("org.yxc.Calculator"); Object o = cls.newInstance(); Method method = cls.getMethod("add", int.class, int.class); int res = (int)method.invoke(o, 3, 4); System.out.println(res); Field field = cls.getField("name"); field.set(o, "My Calculator!"); System.out.println(field.get(o)); Constructor<?> constructor = cls.getConstructor(String.class); Object new_o = constructor.newInstance("New Calculator!"); System.out.println(new_o); } }
标签:总结,10,java,lang,int,reflect,注解,public From: https://www.cnblogs.com/liucaizhi/p/17204824.html