⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bsmessage.java

📁 java已定义的异常类一般情况下能满足开发应用
💻 JAVA
字号:
package com.cdb.gbms.loan.student.bs.exception;

import java.util.Locale;
import java.util.ResourceBundle;

/**
 * 这个类封装了实现本地化信息的方法
 */
public class BSMessage implements BSLocalizableMessage {
	private String resourceBundle;
	private String messageKey;
	private Object textInserts[];

	/**
	 * 参数化本地信息
	 * 
	 * @param s
	 *            是资源类名
	 * @param s1
	 *            是信息的键值
	 * @param aobj
	 *            是参数信息
	 */
	public BSMessage(String s, String s1, Object aobj[]) {
		setLocalizedMessage(s, s1, aobj);
	}

	/**
	 * 插入参数值
	 */
	private static String insertKeys(String s, Object objs[]) {
		StringBuffer sb = new StringBuffer();
		int len = objs.length;
		for (int i = 0; i < len; i++) {
			int index = s.indexOf("*");
			if (index == -1)
				continue;
			sb.append(s.substring(0, index));
			if (objs[i] != null) {
				sb.append(objs[i].toString());
			} else {
				sb.append("    ");
			}
			s = s.substring(index + 1);
		}
		if (s.indexOf("*") != -1)
			s = s.replace('*', ' ');
		sb.append(s);
		return sb.toString();
	}

	/*
	 * 设置本地化信息 @param s 是资源类名 @param s1 是信息的键值 @param aobj 是参数信息
	 */
	protected void setLocalizedMessage(String s, String s1, Object aobj[]) {
		resourceBundle = s;
		messageKey = s1;
		textInserts = aobj;
	}

	/*
	 * 构造实例获取本地化信息(按当前版本)
	 */
	public String getLocalizedMessage() {
		return getLocalizedMessage(resourceBundle, messageKey, textInserts);
	}

	/*
	 * 构造实例获取本地化信息(按传入的Locale)
	 */
	public String getLocalizedMessage(Locale locale0) {
		return getLocalizedMessage(resourceBundle, messageKey, textInserts,
				locale0);
	}

	/*
	 * 根据传入的参数获取本地化信息(按当前版本) @param s 是资源类名 @param s1 是信息的键值 @param aobj 是参数信息
	 */
	public static String getLocalizedMessage(String s, String s1, Object aobj[]) {
		return getLocalizedMessage(s, s1, aobj, null);
	}

	/*
	 * 根据传入的参数获取本地化信息(按传入的Locale) @param s 是资源类名 @param s1 是信息的键值 @param aobj
	 * 是参数信息 @param locale0 是Locale对象
	 */
	public static String getLocalizedMessage(String s, String s1,
			Object aobj[], Locale locale0) {
		String localeMess = null;
		if (locale0 == null)
			locale0 = Locale.CHINA;
		String s3 = ResourceBundle.getBundle(s, locale0).getString(s1);
		preProcess(aobj, locale0);
		if (aobj == null)
			localeMess = s3;
		else
			localeMess = insertKeys(s3, aobj);
		return localeMess;
	}

	/*
	 * 预处理参数对象数组,如果有LocalizableMessage对象,先将其本地化(按传入的Locale)
	 */
	private static void preProcess(Object[] objs, Locale locale0) {
		if (objs != null) {
			for (int i = 0; i < objs.length; i++) {
				if (objs[i] != null) {
					if (objs[i] instanceof BSLocalizableMessage)
						objs[i] = ((BSLocalizableMessage) objs[i])
								.getLocalizedMessage(locale0);
				}
			}
		}
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -