枚举的用法

创建枚举类

package javaEnum;

import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
//import java.util.HashMap;
//import java.util.Map;

public enum payType  implements PBCManager{

	ABC(1,"AgrculturalBankOfChina","农业银行","www.abchina.com"),
	BOC(2,"BankOfChian","中国银行","www.boc.cn"),
	ICBC(3,"IndAndCommBankOfChina","工商银行","www.icbc.com.cn"),
	CCB(4,"ChinaConsBank","建设银行","www.ccb.com"),
	CITIC(5,"ChinaIntTruAndInvCor","中信银行","www.citicbank.com"),
	HXB(6,"HuaxiaBankCo.Ltd","华夏银行","www.hxb.com.cn");


	
	private final int code;
	private final String Engname;
	private String CHNname;
	private final String url;
	
	
		

	private payType(int code,String Engname, String CHNname,String url) {
		this.code = code;
		this.Engname = Engname;
		this.CHNname = CHNname;
		this.url = url;
	}

	@Override
	public int getCode() {
		return this.code;
	}

	@Override
	public String getCHNname() {
		return this.CHNname;
	}
	
	@Override
	public String getUrl() {
		return this.url;
	}
	
	@Override
	public String getEngName() {
		return this.Engname;
	}

		
		//getENGname && Url
	public static String getDescriptionByName(String CHNname) {	
				
		for(payType value : payType.values()) {			
			if(value.getCHNname().equals(CHNname)) {
				return value.getEngName() +":"+ value.getUrl();
			}							
		}				
		getAllBank(CHNname);
		

		//错误
		return ERCode.StrERROR.Msg();
	}

	
	
	
		//getUrl
	public static String getUrlByCode(int code) {				
		try {
			if(!(0< code && code <=6)) {				
				throw new ArrayIndexOutOfBoundsException();
			}
		}catch(Exception e) {
			e.printStackTrace();
		}				
		switch(code) {
			case 1:
				return payType.ABC.url ;
			case 2:
				return BOC.CHNname+ BOC.url;
			case 3:
				return ICBC.CHNname+ ICBC.url;
			case 4:
				return CCB.CHNname+ CCB.url;
			case 5:
				return CITIC.CHNname+ CITIC.url;
			default:
				return ERCode.CodERROR.toString();
		}		
	}


		// getallbank
	public static void getAllBank(String CHNname) {
		ArrayList<String> allbank = new ArrayList<>();
		for(payType key : payType.values()) {
			allbank.add(key.getCHNname());			
		}
		try {
			if(!allbank.contains(CHNname)) {
				throw new IllegalArgumentException();				
			}
		}catch(Exception e) {
			e.printStackTrace();
		}
				// 传出时间&&日志
		Logger logger = Logger.getLogger(payType.class.getName());
		Date date = new Date();
		SimpleDateFormat formate = new SimpleDateFormat("yyyy-MM-dd");
		String time = formate.format(date);
//		logger.log(Level.INFO,"传入参数不正确:"+CHNname+time);
		logger.logp(Level.INFO, time, CHNname, ERCode.StrERROR.Msg());

		System.out.println("Bank:" + allbank);
	}





		

}
package javaEnum;


ERROR CODE 枚举


public enum ERCode {

	StrERROR("传入参数非法"),
	CodERROR("传入code非法");

	private final String msg;
	
	private ERCode(String msg) {
		this.msg = msg;
	}
	
	public String Msg() {
		return this.msg;
	}
	
	public String toString() {
		return this.msg;
	}
	
}


创建接口,并被枚举类实现

package javaEnum;

public interface PBCManager {
	public int getCode();
	public String getEngName();
	public String getCHNname();	
	public String getUrl();
	
//	public String setCHNname(String name);
//	public String setEngName(String name);	
//	public String getUrlByCode(int code);
	
	
}

创建测试类

package javaEnum;

public class Bank {

	public static void main(String[] args) {
		
		String args1 = payType.getDescriptionByName("工商");
		String args2 = payType.getUrlByCode(1);
		String args3 = payType.CCB.getCHNname();
		
		System.out.println(args1);
		System.out.println(args2);
		System.out.println(args3);
		
	}

}

Map集合遍历所有并输出

package javaEnum;

import java.util.HashMap;
import java.util.Map;
//import java.util.Map.Entry;
import java.util.Set;

public class Card {
	
	public static void getCardAll() {
		Map<String,String> cardmap = new HashMap<>();
		cardmap.put(payType.ABC.getCHNname(), payType.ABC.getUrl());
		cardmap.put(payType.BOC.getCHNname(), payType.BOC.getUrl());
		cardmap.put(payType.ICBC.getCHNname(), payType.ICBC.getUrl());
		cardmap.put(payType.CCB.getCHNname(), payType.CCB.getUrl());
		cardmap.put(payType.CITIC.getCHNname(), payType.CITIC.getUrl());
//		Set<Entry<String, String>> cardset = cardmap.entrySet();
		Set<?> cardset = cardmap.entrySet();
		for(Object o : cardset) {
			System.out.println(o);
		}
		
	}
	
	
	
	

}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值