代码应该被重用,而不是被拷贝 同大多数学科一样,学习编程的艺术首先要学会基本的规则,然后才能知道什么时候可以打破这些规则 创建和销毁对象 1.考虑用静态工厂方法代替构造器. 优势:有名称.不必再每次调用他们的时候都创建一个对象.可以返回原类型的任何子类型的对象.代码变得更简洁 //抽象产品角色 public interface Car { public void drive(); } //具体产品角色 public class Benz implements Car { public voi
第23条: 不要在新代码中使用原生态类型 声明中具有一个或多个类型参数的类或接口,就是泛型类或接口.每种泛型都定义一组参数化的类型,每个泛型都定义一个原生态类型.例如List<E>相对应的原生态类型是List. public class RawTypeTest { public static void main(String[] args) { Collection stamps = new ArrayList(); //raw type // Collection<Stamp>
第23条:请不要在新代码中使用原生态类型 声明中具有一个或者多个类型参数( type parameter)的类或者接口,就是泛型(generic)类或者接口. 每种泛型定义一组参数化的类型(parameterized type),构成格式为: 先是类或者接口的名称,接着用尖括号(<>)把对应于泛型形式类型参数的实际类型参数列表括起来.例如,List(读作"字符串列表")是一个参数化的类型,表示元素类型为String的列表. 最后点,每个泛型都定义一个原生态类型[raw ty
1.找到了影响桌面小部件的布局文件packages/apps/Mms$ vim res/layout/widget.xml修改里面的背景颜色属性,可以实现预期效果,至于里面的 <LinearLayoutandroid:id="@+id/widget_header"android:layout_width="match_parent"android:layout_height="48dp"android:orientation="h
先看一个栗子,看看能不能找出来里面的错误: /** * 请不要在新代码中使用原生态类型 * @author weishiyao * */ public class Test { public static void main(String[] args) { List<String> strings = new ArrayList<>(); unsafeAdd(strings, new Integer(42)); String string = strings.get(0); Sy
从这条开始涉及泛型相关的点. 从JDK5开始Java新增了“泛型”新特性,例如:List<String>,在这之前则只有List不会限定类型. 如今的JDK版本中还是可以写原生类型,但这会带来隐藏的不安全问题.如果在声明一个列表变量时不使用泛型而使用原生类型,如下: public class Main { public static void main(String[] args) throws Exception{ List list = new ArrayList(); list.add(