java10 - 泛型與枚舉


java10泛型與枚舉

泛型和枚舉都是JDK1.5版本之后加入的新特性,泛型將程序代碼的類型檢查提前到了編譯期間進行,枚舉類型增強了程序代碼的健壯性。

1.泛型類

class VariableType<T> { // 此處可以隨便寫標識符號,T是type的簡稱
	private T var; // var的類型由T指定,即:由外部指定
	public T getVar() { // 返回值的類型由外部決定 ,泛型方法
		return var;
	}
	public void setVar(T var) { // 設置的類型也由外部決定
		this.var = var;
	}
};

public static void main(String args[]) {
	VariableType <String> p = new VariableType <String>(); // 里面的var類型為String類型
	p.setVar("it"); // 設置字符串
	System.out.println(p.getVar().length()); // 取得字符串的長度
}

2.泛型方法

// T 為參數類型
public static void main(String[] args) {
	variableType(1);
	variableType(1.0);
}
	
public static <T> void variableType(T a) {
	System.out.println(a.getClass());
}

3.泛型接口的定義和使用

package com.rimi.Test;

import java.util.Date;

interface Show<T,U>{  
    void show(T t,U u);  
}  

class ShowTest implements Show<String,Date>{  
    @Override  
    public void show(String str,Date date) {  
        System.out.println(str);  
        System.out.println(date);  
    }  
}  

public class TestDemo {
	public static void main(String[] args) {
        ShowTest showTest=new ShowTest();  
        showTest.show("Hello",new Date());  	
	}
}

4.比較任意類型的兩個數的大小

public static void main(String[] args) {
	System.out.println(get(1,2));
}

public static <T extends Comparable> T get(T t1, T t2) { // 添加類型限定
	if (t1.compareTo(t2) >= 0)
	{
		return t2;
	}
	return t1;
}

5.枚舉

// 枚舉定義
public enum Color {
     RED, GREEN, BLANK, YELLOW 
}
// 枚舉使用
public static void main(String[] args) { 
    System.out.println( isRed( Color.BLANK ) ) ;  //結果: false
    System.out.println( isRed( Color.RED ) ) ;    //結果: true
 
}
// 枚舉值的使用
static boolean isRed( Color color ){
    if ( Color.RED.equals( color )) {
        return true ;
    }
    return false ;
}
public enum Color {
	RED, GREEN, BLANK, YELLOW
}

public static void main(String[] args) {
	showColor(Color.RED);
}

static void showColor(Color color) {
	switch (color) {
	case BLANK:
		System.out.println(color);
		break;
	case RED:
		System.out.println(color);
		break;
	default:
		System.out.println(color);
		break;
	}
}
//自定義函數
public enum Color {
	RED("紅色", 1), GREEN("綠色", 2), BLANK("白色", 3), YELLO("黃色", 4);
	private String name;
	private int index;
	private Color(String name, int index) {
		this.name = name;
		this.index = index;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getIndex() {
		return index;
	}
	public void setIndex(int index) {
		this.index = index;
	}
}


public static void main(String[] args) {
	// 輸出某一枚舉的值
	System.out.println(Color.RED.getName());
	System.out.println(Color.RED.getIndex());
	// 遍歷所有的枚舉
	for (Color color : Color.values()) {
		System.out.println(color + "  name: " + color.getName() + "  index: " + color.getIndex());
	}
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM