(28)泛型和File类的使用

泛型

1,泛型的概念

Java泛型是J2 SE1.5中引入的一个新特性,其本质是参数化类型,也就是说所操作的数据类型被指定为一个参数(type parameter)这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。

2,在集合中使用泛型,总结:

①, 集合接口或集合类在jdk5是都修改为带泛型的结构

②,注意:泛型的类型必须是类,不能是基本数据类型。

③,如果实例化时,没有指明泛型的类型。默认类型是java.lang.Object类型

3,使用泛型应该注意

①,静态方法中不能使用类的泛型(泛型需先创建对象再使用)

②,异常中不能使用类的泛型

4,泛型再在方法中的使用如下

//泛型方法:在方法中出现了泛型的结构,泛型参数与类的泛型参数没有任何关系
public <E> list<E> copyFromArrayToList(E[] arr){
      ArrayList<E> list = new ArrayList<>();
      for(E e : arr){
            list.add(e);
      }
      return list;
}

5,泛型在继承方面的体现

  • 虽然类C是类D的父类,但是G< C>和G< D>二者不具备子父类关系,二者是并列的关系,代码如下:
List<Object> list1 = null;
List<String> list2 = null;
//此时的list1和list2的类型不具有子父类关系
list1 = list2;(报错)
反证法:
      假设list1 = list2
      list.add(123);//导致混入非String的数据,出错

补充:类C是类D的父类,C< G>是D< G>的父类,代码如下:

AbstarctList<String> list1 = null;
List<String> list2 = null;
ArrayList<String> list3 = null;
list1 = list3;
list2 = list3;

6,通配符的使用

  • 通配符:?
    类A是类B的父类,G< C>和G< D>是没有关系的,二者共同的父类是:G

    添加:对于List就不能向其内部添加数据,除了添加null之外

    获取(读取):允许读取数据,读取的数据类型为Object

  • 有限制条件的通配符的使用
    ? extends C:
    G 可以作为G< C>和G< D>的父类,其中D是C的子类

    ? super C:
    G 可以作为G< C>和G< D>的父类,其中D是C的父类


File类的使用:

1,File类的一个对象,代表一个文件或一个文件目录(俗称:文件夹)

2,File类声明在java.io包下

①,如何创建File类的实例

File(String filePath);
File(String parentPath, String childPath);
File(File parentFile, String childPath);

②,相对路径:相较于某路径下,指明的路径
       绝对路径:包含盘符在内的文件或文件目录的路径

③,路径分隔符

windows : \\
unix : /

3,File类的获取功能

public String getAbsolutePath(): 获取绝对路径
public String getPath(): 获取路径
public String getName():获取名称
public String getParent():获取上层文件目录路径。若无,返回null
public long length():获取文件长度(字节数)。不能获取目录的长度
public long lastModified():获取最后一次的修改时间,毫秒值

public String[] list():获取指定目录下的所有文件或者文件目录的名称数组
public File[] listFiles():获取指定目录下的所有文件或者文件目录的File数组
public boolean renameTo(File dest):吧文件重命名为指定的文件路径比如:file1.renameTo(file2)为例:要想保证返回true,需要file1在硬盘中是存在的,且file2不能在硬盘中存在

public boolean isDirectory():判断是否是文件目录
public boolean isFile():判断是否是文件
public boolean exists():判断是否存在
public boolean canRead():判读是否可读
public boolean canWrite():判断是否可写
public boolean isHidden():判断是否隐藏

pulic boolean createNewFile():创建文件。若文件存在,则不创建,返回false
public boolean mkdir():创建文件目录。如果此文件目录存在,就不创建了。如果此文件目录的上层目录不存在,也不创建
public boolean mkdirs():创建文件目录。如果上层文件目录不存在,一并创建
public boolean delete():删除文件或文件夹(注意:Java中的删除不走回收站)

下一章,(29)Java中IO流的使用

你可能感兴趣的:(Java笔记,java,泛型,file类)