一些我总会忘记的小知识总结(Android or Java)
2015-09-15 14:45
459 查看
在项目开发时过于追求大的知识,比如多线程下载,网络请求等,往往会忽略一些非常小的知识,有时候为了验证想法和实际我会开辟一个工程专门用来验证,接下来就是我验证过的一些,看看你是否会忽略呢?
所以
1. ArrayList是可以添加null对象的;
2. ArrayList添加一个String,改变值后再添加,得到的是两个不同的String
如果你用ArrayList存储对象,拿出来用之前记得有必要判空哦!~
而如果你需要重复添加String类型的话,定义一个String,不停覆盖值就够了!~
所以
3.foreach的对象不能为空,否则会报空指针
这里就要注意如果以后传数据的时候,如果要用到foreach的话,最好先判断数据是否为空!~
所以
4.String为null的话打印出来也是null。
如果你不希望得到这个结果的话,记得判空哦!~
在初始化过程中,默认调用
1. arrayList.add(null)是允许的吗?
2. ArrayList添加一个String对象,改变该String对象后再添加,结果是添加了两个一样的对象还是不一样的?
ArrayList<String> strList = new ArrayList<String>(); String str = "abc"; strList.add(str); str = "123"; strList.add(str); strList.add(null); System.out.println("strList = " + strList);
//输出结果 strList = [abc, 123, null]
所以
1. ArrayList是可以添加null对象的;
2. ArrayList添加一个String,改变值后再添加,得到的是两个不同的String
如果你用ArrayList存储对象,拿出来用之前记得有必要判空哦!~
而如果你需要重复添加String类型的话,定义一个String,不停覆盖值就够了!~
3.foreach的对象如果是空会怎样?
ArrayList<String> strings = null; for (String str : strings) { }
//结果 Exception in thread "main" java.lang.NullPointerException
所以
3.foreach的对象不能为空,否则会报空指针
这里就要注意如果以后传数据的时候,如果要用到foreach的话,最好先判断数据是否为空!~
4.String如果初始化为null,打印出来是什么?
String str = null; System.out.println("str = " + str);
//输出结果 str = null
所以
4.String为null的话打印出来也是null。
如果你不希望得到这个结果的话,记得判空哦!~
5.Android 如何在初始化时获取TextView的宽高?
tv.measure(0, 0); int width = tv.getMeasuredWidth(); int height = tv.getMeasuredHeight();
在初始化过程中,默认调用
tv.getHeight()是不能得到真实高度的(得到的值为0),是因为View要等到
onLayout()结束后才能用
getWidth()|getHeight()得到宽高。同样,在
onMeasure()结束后,才能得到
getMeasuredWidth(),第一句
tv.measure(0, 0);相当于强制调用了
onMeasure(),所以二三句就能得到宽高了(注意dp和px的误差)。
/** * ┏┓ ┏┓ * ┏┛┻━━━┛┻┓ * ┃ ┃ * ┃ ━ ┃ * ┃ > < ┃ * ┃ ┃ * ┃... ⌒ ... ┃ * ┃ ┃ * ┗━┓ ┏━┛ * ┃ ┃ * ┃ ┃ 努力挤牙膏中~ * ┃ ┃ * ┃ ┃ * ┃ ┃ * ┃ ┃ * ┃ ┗━━━┓ * ┃ ┣┓ * ┃ ┏┛ * ┗┓┓┏━┳┓┏┛ * ┃┫┫ ┃┫┫ * ┗┻┛ ┗┻┛ */
相关文章推荐
- android 中的回调方法的实现
- Android源码编译整理总结
- Android学习笔记——SAX解析XML
- 使用Wireshark实时抓包Android
- Android Studio -使用 Gradle 打包多版本APK
- AndroidStudio使用笔记
- android数据存储之SQLite篇
- android listview 与手势冲突
- Android 自定义DialogProgress
- android基于Fragment实现底部导航切换
- android audiotrack使用问题:listener不回调的原因
- android清除缓存并获取大小
- Android bindservice使用
- android亮屏、暗屏、解锁、关闭系统对话的监听事件
- Android通过setDataAndType(uri, "type")打开文件
- mac 无法连接android手机进行调试 解决方案
- Android中的常用单位转换
- Android(java)学习笔记253:ContentProvider使用之内容观察者02
- 【Android技术整理】Handler以及Handler如何实现多线程
- GPS(ublox MAX 7c)移植 (飞思卡尔 IMX6 Android4.3平台)