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());
}
}