(28)と、Fileクラスの一般的な使用

ジェネリック

1、ジェネリックの概念

汎用Javaは、基本的データ型の動作は、このクラスは、インターフェイスで使用することができるパラメータ(タイプ・パラメータ)のパラメータ・タイプとして指定されていると言うことでパラメータ化された型であり、J2 SE1.5導入された新機能であり、そしてジェネリッククラス、ジェネリックインターフェイス、ジェネリックメソッドと呼ばれるメソッドを作成します。

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、ワイルドカードを使用して

  • ワイルドカード:?
    クラスは、クラスB、G <C>とG <D>のスーパークラスである関連していない、両方の共通の親クラスがある:G <?>

    追加:リストが内部データに追加することはできません、ヌルを追加することに加えて、<?>

    取得し(読み出し):読み取りデータ型のオブジェクト、データを読み取ることができます

  • ワイルドカードの使用に制限がある
    ?Cを拡張
    Gは、G <C>、DはCのサブクラスである親クラスのG <D>として<?Cが伸び>

    ?スーパーC
    G <スーパーC?>としてG <C>、DはCの親である親クラスのG <D>


Fileクラスを使用します。

1、Fileクラスのオブジェクトは、ファイルまたは(:フォルダとして一般に知られている)ディレクトリを表します。

2、パッケージjava.ioのFileクラスの宣言

①、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ストリームの使用

公開された67元の記事 ウォン称賛19 ビュー9872

おすすめ

転載: blog.csdn.net/qq_41530004/article/details/104015597