JsonValue、JsonString、JsonNumber源码翻译

来源:互联网 发布:淘宝如何最快提交订单 编辑:程序博客网 时间:2024/05/23 01:12

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