类加载器&反射
类加载器
public static void main(String[] args) throws IOException {
//获取系统类加载器
ClassLoader systemClassLoader = ClassLoader.getSystemClassLoader();
//利用加载器去加载一个指定的文件
InputStream is = systemClassLoader.getResourceAsStream("prop.properties");
Properties prop = new Properties();
prop.load(is);
System.out.println(prop);
is.close();
} 反射
获取 Class类的对象
public class demo {
public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException {
Class<?> clazz = Class.forName("com.itheima.reflect.Student");
// method1(clazz);
// method2(clazz);
// method3(clazz);
// method4(clazz);
}
private static void method4(Class<?> clazz) throws NoSuchMethodException {
Constructor<?> declaredConstructor = clazz.getDeclaredConstructor(String.class);//返回单个构造方法
System.out.println(declaredConstructor);
}
private static void method3(Class<?> clazz) throws NoSuchMethodException {
Constructor<?> constructor = clazz.getConstructor(); //返回单个公共无参构造方法
System.out.println(constructor);
Constructor<?> constructor1 = clazz.getConstructor(String.class,String.class);//返回单个公共构造方法
System.out.println(constructor1);
}
private static void method2(Class<?> clazz) {
Constructor<?>[] declaredConstructors = clazz.getDeclaredConstructors();//所有构造方法对象的数组
for (Constructor<?> declaredConstructor : declaredConstructors) {
System.out.println(declaredConstructor);
}
}
private static void method1(Class<?> clazz) {
Constructor<?>[] constructors = clazz.getConstructors(); //所有公共构造方法对象的数组
for (Constructor<?> constructor : constructors) {
System.out.println(constructor);
}
}
} Class<?> clazz = Class.forName("com.itheima.reflect.Student");
Constructor<?> constructor = clazz.getConstructor();
Student o = (Student) constructor.newInstance(); //输出无参构造对象
Constructor<?> declaredConstructor = clazz.getDeclaredConstructor(String.class);
declaredConstructor.setAccessible(true);//暴力反射
Student s1 = (Student) declaredConstructor.newInstance("小佢"); XML
public static void main(String[] args) throws DocumentException {
//解析器对象 需要dom4j包
SAXReader saxReader = new SAXReader();
//利用解析器将xml文件加载到内存中
Document read = saxReader.read(new File("test-classloader\\src\\student.xml"));
ArrayList<Student> list = new ArrayList<>();
//获取根节点
Element rootElement = read.getRootElement();
//根据标签名找Element
List<Element> studentElement = rootElement.elements("Student");
for (Element element : studentElement) {
//Student 标签属性
Attribute id = element.attribute("id");
//Student下 节点的name标签的值
String name = element.element("name").getText();
String age = element.element("age").getText();
Student student = new Student(name,Integer.parseInt(age));
list.add(student);
}
for (Student student : list) {
System.out.println(student);
}
} DTD&schema
DTD约束
schema约束
编写
引入
枚举&注解
枚举
注解
单元测试&日志技术
单元测试
日志技术
import org.slf4j.Logger; import org.slf4j.LoggerFactory; private static final Logger LOGGER = LoggerFactory.getLogger(demo.class);

京公网安备 11010502036488号