JsonValue、JsonString、JsonNumber源码翻译

package javax.json;
/**
 * 目的:定义JSON值的类型(不可变的JSON值)
 * 
 * <p>JSON值有:{@link JsonObject}、{@link JsonArray}
 * 			  {@link JsonNumber}、{@link JsonString}
 * 			  JsonValue.TRUE、JsonValue.FALSE、JsonValue.NULL
 * @author TCM
 * @create 2017年11月3日上午10:31:23
 */
public interface JsonValue {

    //JSON值的类型
    enum ValueType {
        ARRAY,
        OBJECT,
        STRING,
        NUMBER,
        TRUE,
        FALSE,
        NULL
    }

    /**
     * JSON的NULL值,即:JsonValue.NULL
     */
    static final JsonValue NULL = new JsonValue() {
        @Override
        public ValueType getValueType() {
            return ValueType.NULL;
        }

        @Override
        public boolean equals(Object obj) {
            if (obj instanceof JsonValue) {
                return getValueType().equals(((JsonValue)obj).getValueType());
            }
            return false;
        }

        @Override
        public int hashCode() {
            return ValueType.NULL.hashCode();
        }

        //返回字符串“null”
        @Override
        public String toString() {
            return "null";
        }
    };

    /**
     * JSON的TRUE值,即:JsonValue.TRUE
     */
    static final JsonValue TRUE = new JsonValue() {
        @Override
        public ValueType getValueType() {
            return ValueType.TRUE;
        }

        @Override
        public boolean equals(Object obj) {
            if (obj instanceof JsonValue) {
                return getValueType().equals(((JsonValue)obj).getValueType());
            }
            return false;
        }

        @Override
        public int hashCode() {
            return ValueType.TRUE.hashCode();
        }

        //返回字符串“true”
        @Override
        public String toString() {
            return "true";
        }
    };

    /**
     * JSON的FALSE值,即:JsonValue.FALSE
     */
    static final JsonValue FALSE = new JsonValue() {
        @Override
        public ValueType getValueType() {
            return ValueType.FALSE;
        }

        @Override
        public boolean equals(Object obj) {
            if (obj instanceof JsonValue) {
                return getValueType().equals(((JsonValue)obj).getValueType());
            }
            return false;
        }

        @Override
        public int hashCode() {
            return ValueType.FALSE.hashCode();
        }

        //返回字符串“false”
        @Override
        public String toString() {
            return "false";
        }
    };

    //获取JSON值的类型
    ValueType getValueType();

    @Override
    String toString();

}
package javax.json;
/**
 * 不可变的JSON字符串值
 * @author TCM
 * @create 2017年11月3日上午10:51:18
 */
public interface JsonString extends JsonValue {

    String getString();
    //返回JSON字符串值的char序列
    CharSequence getChars();
    @Override
    boolean equals(Object obj);
    @Override
    int hashCode();

}
package javax.json;

import java.math.BigDecimal;
import java.math.BigInteger;

/**
 * 目的:不变的JSON数值
 * 
 * 注意:这个类中的一些方法语义是使用BigDecimal语义定义的。
 * @author TCM
 * @create 2017年11月3日下午1:18:38
 */
public interface JsonNumber extends JsonValue {

    /**
     * 判定JSON数值是不是整数
     * 
     * 例如:
     * 	JsonNumber num = ...
 	 *	if (num.isIntegral()) {
     * 		num.longValue();     // or other methods to get integral value
 	 *	} else {
     *		num.doubleValue();   // or other methods to get decimal number value
 	 *	}
     * @return 返回true,是整数
     */
    boolean isIntegral();

    /**
     * @see java.math.BigDecimal#intValue()
     */
    int intValue();

    /**
     * @see java.math.BigDecimal#intValueExact()
     */
    int intValueExact();

    long longValue();
    long longValueExact();

    /**
     * @see java.math.BigDecimal#toBigInteger()
     */
    BigInteger bigIntegerValue();

    /**
     * @see java.math.BigDecimal#toBigIntegerExact()
     */
    BigInteger bigIntegerValueExact();

    double doubleValue();

    BigDecimal bigDecimalValue();

    @Override
    String toString();
    @Override
    boolean equals(Object obj);
    @Override
    int hashCode();

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值