黑马程序员-Java高新技术(二)
来源:互联网 发布:centos 7 syslog 编辑:程序博客网 时间:2024/04/30 09:29
尽可能的使用绝对路径,不要使用相对路径。使用相对路径在将工程bin文件交给用户时,配置文件无法提交。
不管相对还是绝对,方法内部都是调用getClassLoader
配置文件的加载往往使用类加载器(框架使用方式,把配置文件放在ClassPath目录下)
六,JavaBean 的简单内省操作
Bean bean = new Bean(1,3);
//面试出题:获取该属性的值
String propertyName = "x";
//"x"-->"X"-->getX-->MethodGetX
//属性描述符 ,指定类为javaBean
PropertyDescriptor pd = new PropertyDescriptor(propertyName,bean.getClass);
//方法类实例方法对象
Method methodGetX = pd.getReadMethod();
//调用methodGetX方法
Object retVal = methodGetX.invoke(bean);
使用BeanUtils工具包操作JavaBean
Bean bean = new Bean();
//当Bean中的属性为Date时候,属性面逐级赋值
BeanUtils.setProperty(bean,"date.time","111");
BeanUtils.getProperty(bean,"date.time");
java7的新特性:
Map map = {name:"111",age:18};
BeanUtils.setProperty(map, "name", "lhm");
七,注解
注解的生命周期:java源文件阶段-> class文件阶段-->内存中的字节码阶段
对应的注解:RetetionPolicy.SOURCE、RetetionPolicy.CLASS、RetetionPolicy.RUNTIME
//要对一个类进行检查,要对此类进行反射获取信息
//检查ItcastAnnotation是否存在
if(AnnotationTest.class.isAnnotationPresent(ItcastAnnotation.class))
@Target元注解
Target的默认值为任何元素,设置Target等于ElementType.METHOD,意思是只能在方法上添加注解,ElementType.TYPE 可以在类上添加
为注解增加高级属性
数组类型的属性
int[] arrayAttr() default{1,2,3}
@MyAnnotation(arrayAttr={2,3,4})
枚举类型的属性
EnumTest.TrafficLamp lamp()
@MyAnnotation(lamp=EnumTest.TrafficLamp.GREEN)
注解类型的属性
MetaAnnotation annotationAttr() default @MetaAnnotation("lhm");
@MytaAnnotation(annotationAttr=@MetaAnnotation("yyy"))
可以认为@MyAnnotation 是 MyAnnotation 类的一个实例对象,同样的道理,可以认为@MetaAnnotation 是 MetaAnnotation类的一个实例对象,调用代码:
MetaAnnotation ma = MyAnnotation.annotationAttr();
System.out.println(ma.value());
八,泛型
泛型集合类的综合案例
变量名的命名法则,当不知道要取什么名时,看可以使用要调用的方法名来当变量名
迭代的条件:实现Iterable<E>接口
对Map进行迭代只能得到Set<Map.Entry<k,v>> 集合。小例子:
Set<Map.Entry<K,V>> entrySet = maps.entrySet();
for(Map.Entry<k,v> entry : entrySet){
System.out.println(entry.getKey()+":"+entry.getValue());
}
自定义泛型
方法添加尖括号<T>即可返回该类型的数据,小例子:
private static <T> T autoConvert(Object obj){
return (T)obj;
}
自定义泛型类的应用
类中多个方法如果需要用到泛型(同一个对象吧,大概这么理解),那么就使用类级别泛型。
- 黑马程序员-Java高新技术(二)
- 黑马程序员JAVA-高新技术二
- 黑马程序员--java高新技术(二)
- 黑马程序员 Java高新技术二
- 黑马程序员-Java高新技术(二)
- 黑马程序员------Java高新技术(二)
- 黑马程序员 java高新技术笔记(二)
- 黑马程序员--java高新技术--反射(二)
- 黑马程序员--高新技术(二)
- 黑马程序员--java高新技术
- 黑马程序员-java高新技术
- 黑马程序员----Java高新技术
- 黑马程序员--Java高新技术
- 黑马程序员--java高新技术--
- 黑马程序员--JAVA高新技术
- 黑马程序员:Java高新技术
- 黑马程序员-----java高新技术
- 黑马程序员-Java高新技术
- Oracle用户配置文件概述
- [小练习]grep练习
- Android核心分析(24)-----Android GDI之显示缓冲管理
- Entity Framework 最佳實踐
- 笔记----boost学习第一步:编译方法
- 黑马程序员-Java高新技术(二)
- Android核心分析(25)------Android GDI之共享缓冲区机制
- J2EE事物处理
- 從LINQ2SQL升級Entity Framework
- 我回来了
- 神思二代身份证读卡器Demo——C#
- 【小李木耳】转:在东北说话得这样...
- hibernate中uuid和native等主键生成策略
- Android核心分析(26)-----Android GDI之SurfaceFlinger