J2SE 5.0中三个比较重要的特性

做小程序支付时,我是怎么被“虚拟支付”绊了一跤的 微信小程序支付开发中,普通支付与虚拟支付存在本质差异。开发者常误将虚拟权益(会员、点数等)当作普通商品支付,导致审核失败。两者在审核关注点、结算方式、API调用及平台政策上都截然不同。关键点在于:1)先明确交易对象类型;2)产品命名需真实反映权益性质;3)支付成功≠业务完成;4)审核说明要详细描述交付逻辑;5)避免依赖过时规则。正确顺序应是:判断商品属性→选择支付类型→设计订单系统→准备审核材料。这个认知差异比技术实现更重要,提前理解平台规则可大幅减少返工。 阅读详情

2005 年 7 月 01 日

本文将介绍J2SE 5.0中三个比较重要的特性: 枚举类型, 注释类型, 范型, 并在此基础上介绍在如何在Eclipse 3.1开发环境中开发枚举类型, 注释类型和范型应用。
J2SE 5.0 (Tiger)的发布是Java语言发展史上的一个重要的里程碑, 是迄今为止在 Java 编程方面所取得的最大进步。

J2SE 5.0提供了很多令人激动的特性。这些特性包括范型(generics)的支持, 枚举类型(enumeration)的支持, 元数据(metadata)的支持, 自动拆箱(unboxing)/装箱(autoboxing), 可变个数参数(varargs), 静态导入(static imports), 以及新的线程架构(Thread framework)。

随着J2SE 5.0的推出, 越来越多的集成开发环境(IDE)支持J2SE 5.0的开发。 著名的开源Java IDE Eclipse从3.1M4开始支持J2SE 5.0的开发, 目前最新的版本是3.1RC4。

本系列将介绍J2SE 5.0中三个比较重要的特性: 枚举类型, 注释类型, 范型, 并在此基础上介绍在如何在Eclipse 3.1开发环境中开发枚举类型, 注释类型和范型应用。本文将介绍范型。

3. 范型

3.1范型(Generics)简介

J2SE 5.0中的最显著的变化之一是添加对泛型类型的支持. 在J2SE 1.4 以及之前的版本中, Java程序并不是类型安全的. 例如, Collection framework中定义的List, Map等容器类的元素都是Object类型, 即这个类包含的元素是Object对象. 使用这种方式实现的列表, 可以用来操作整数, 实数, 字符串或者任何对象类型. 例如


清单3.1.1 类型不安全的代码示例
List stringList = new ArrayList();
stringList.add("abcde");
String str = (String)stringList.get(0);
 


这种方法实现的列表需要使用强制类型转换(又称显示造型), 因此不是类型安全的. 在上面这段代码种, 虽然变量名为stringList, 但是我们仍然可以把一个整型对象添加到这个队列中, 例如,


清单3.1.2 类型不安全的代码示例
stringList.add(new Integer(5));
 


在这种情况下, 从字符列表中获取对象时, 强制类型转换就会导致运行时异常.


清单3.1.3 类型不安全的代码示例
String str = (String)stringList.get(1); //runtime exception
 


范型是Java迈向类型安全的一个重要步骤, 使用范型可以构造出类型安全的代码.

3.2声明范型

所谓范型是指类型参数化(parameterized types). Java是一种强类型的语言, 在J2SE 1.4以及以前的版本中, 我们在定义一个Java类, 接口或者方法的时候, 必须指定变量的类型. 在声明范型类、接口或者函数时, 定义变量的时候不指定某些变量的具体类型, 而是用一个类型参数代替. 在使用这个类, 接口, 或者方法的时候, 这个类型参数由一个具体类型所代替.

3.2.1 范型类

下面的例子中介绍了如何创建一个最简单范型类


清单3.2.1, 最简单的范型类
public class GenSample<T> {}
 


类名后面带有<T>表明了这个类是范型类, 其中T被成为类型参数(type parameter), 在使用范型的时候, 类型参数可以被替换为任何的类类型, 但是不能是原始类型(primitive type), 例如int, double.

下面通过一个列表的例子来具体说明如果声明范型类和类型参数的用法.


清单3.2.2, 范型列表
public class GenList <T>{
 private T[] elements;
 private int size = 0;
 private int length = 0;
 public GenList(int size) {
  elements = (T[])new Object[size];
  this.size = size;
 }
 public T get(int i) {
  if (i < length) {
   return elements[i];
  }
  return null;
 }
 
 public void add(T e) {
  if (length < size - 1)
   elements[length++] = e;
 }
}
 


在列表的例子中, 类型参数T被用来表示列表中的元素的类型, 即, 这个列表中的元素是T类型的.

在使用这个列表时, 这个类型参数T会被具体的类型所替代.

注意, 由于T时类型参数不是具体的类, 所以不能使用new操作符创建T的对象,例如new T(), 或者, new T[10].

3.2.2 范型接口

在J2SE 5.0中, 不仅仅可以声明范型类, 也可以声明范型接口, 声明范型接口和声明范型类的语法类似, 也是在接口命称后面加上<T>. 例如,


清单3.2.3, 范型接口
public interface GenInterface<T> {
    void func(T t);
}
 


3.2.3声明多个类型参数的范型类或者接口

在声明范型类的时候, 可是使用多个类型参数. 多个类型参数之间用逗号分开, 例如,


清单3.2.4, 多个类型参数的范型类
public class GenMap<T, V> {}
 


Eclipse 3.1的类创建向导支持创建范型类, 如下图所示,


图3.2.1 使用类向导创建范型类
 

使用Eclipse接口向导创建范型接口


图3.2.2 使用接口向导创建范型接口
 

3.2.4范型方法

类型参数(type parameter)不仅仅可以用来声明范型类或者范型接口, 也可以用来声明范型方法, 而且这种声明的范型方法可以用在非范型类中, 声明范型方法的一般格式是


清单3.2.5 范型方法的一般形式
<type-list> return-type method-name(parameter-list) {}
 


清单3.2.6 范型方法示例
public <T> String getString(T obj) {
 return obj.toString();
}
 


3.2.5 受限范型

受限范型是指类型参数的取值范围是受到限制的. extends关键字不仅仅可以用来声明类的继承关系, 也可以用来声明类型参数(type parameter)的受限关系.例如, 我们只需要一个存放数字的列表, 包括整数(Long, Integer, Short), 实数(Double, Float), 不能用来存放其他类型, 例如字符串(String), 也就是说, 要把类型参数T的取值范型限制在Number极其子类中.在这种情况下, 我们就可以使用extends关键字把类型参数(type parameter)限制为数字,


清单3.2.7 受限范型示例
public class Limited<T extends Number> {
 public static void main(String[] args) {
  Limited<Integer> number;   //正确
  Limited<String> str;       //编译错误
 }
}
 


在Eclipse 3.1中, 上例中的编译错误信息如下图所示


图3.2.3 由于受限范型导致的编译错误
 

3.3 在程序中使用范型

3.3.1在程序中使用范型类

在创建范型类的对象的时候, 和创建普通对象基本类似, 必须提供具体的类类型来替代类型参数T (J2SE 5.0目前不支持原始类型作为类型参数(type parameter)).


清单3.3.1, 使用范型类
//如果需要整型的列表
GenList<Integer> integerList = new GenList<Integer>();
//如果需要字符型的列表
GenList<String> strList = new GenList<String>();
//不能使用原始类型
GenList<int> nList = new GenList<int>();  //编译错误
 


3.3.2 使用范型解决类型安全性问题

使用范型实现的列表是类型安全的, 下列破坏类型安全语句会在编译的时候检查出来。 把鼠标放在错误标记上, Eclipse 3.1中的错误提示就会显示,如下图所示:


图3.3.2 破坏类型安全引起的错误
 

3.3.3 二义性错误

GenMap在声明是使用了2个类型参数T和V, 因此在创建GenMap的对象的时候也需要提供2个具体的类类型来替代这2个类型参数, 例如,


清单9, 多个参数的范型类
GenMap<Integer, String> gm = new GenMap<Integer, String>();
GenMap<String, String> gm2 = new GenMap<String, String>();
 


上例中, T和V虽然看起来是两个不同的类型参数, 但是在使用这个范型类的时候, T和V很有可能被替换成同一种类型. 因此在声明多个类型参数的范型类时, 要注意避免这种二义性错误, 例如,


清单10, 二义性错误
public class GenMap<T, V> {
    //编译错误, 二义性错误
    public void set(T t){}
    public void set(V v){}
}
 


在上面这段代码, 如果T和V被替换成同一种类型, set函数的签名(signature)就是完全一样的, 所以编译器会报告二义性错误. 正确的用法是声明2个不同名的方法, 例如,


清单10, 二义性错误
public class GenMap<T, V> {
    public void setKey(T t){}
    public void setValue(V v){}
}
 


图3.3.3 二义性错误
 

3.3.4 使用通配符

前面我们创建了范型的列表, 如果我需要一个方法来处理范型列表, 例如, 我们希望把列表中的每个元素都打印出来, 但是类型参数(type parameter)只能使用在声明一个范型类的时候, 如果类型参数使用在函数定义里会导致编译错误


public static void print(GenList<T> list){} //编译错误
 


在这种情况下, 我们需要用另外一种方法来表示一个范型类, 否则, 就可能需要书写多个print函数


public static void print(GenList<Integer> list){}
public static void print(GenList<Double> list){}
…
public static void print(GenList<String> list){}
 


J2SE 5.0中提供了范型的通配符"?", "?"可以用来代替任何类型, 例如使用通配符来实现print方法


public static void print(GenList<?> list) {}
 


3.4. 范型的一些局限型

(1) 类型参数不能实例化, 例如,


T t= new T();   //编译错误
 


(2) 不能实例化类型参数的数组


T[] ts= new T[10];   //编译错误
 


(3) 类的静态变量不能声明为类型参数类型


public class GenClass<T> {
     private static T t;    //编译错误
}
 


(4) 范型类不能继承自Throwable以及其子类


public GenExpection<T> extends Exception{}    //编译错误
 


3.5.范型小结

范型是J2SE 5.0所提供的一项强大的功能, 使用范型可以创建类型安全的、可重用的代码, 虽然目前Java的范型还无法和C++的范型相提并论, 但是, 随着Java语言本事的演进, 范型会在Java语言中发挥更大的作用的. 

什么是 SAPGUI 里的 Logon Group/Server 这意味着,不同的用户连接可以被分配到不同的应用服务器,以实现均衡的资源利用和降低某一服务器的负载压力。在这种配置下,欧洲的用户登录时选择“EUROPE_GROUP”,系统将自动选择一个位于欧洲的数据中心的服务器进行连接,这样不仅减少了网络延迟,还实现了服务器间的负载均衡。用户在 SAPGUI 中登录时,只需选择相应的 Logon Group(例如“FIN_GROUP”),系统就会自动将他们的连接请求分配到当前负载最小的应用服务器上,这种动态分配大大提升了系统的响应速度和稳定性。 阅读详情

相关推荐

【2025CVPR】基于脉冲神经网络的能效目标检测模型:Multi-scale Spiking Detector(MSD)深度解析

本文提出了一种创新的多尺度脉冲神经网络目标检测器(MSD),通过生物启发的ONNB模块和MSDF框架实现了高效准确的目标检测。该模型采用端到端直接训练策略,在COCO数据集上达到62.0%mAP的精度,同时仅需7.8M参数和6.43mJ能耗,较传统方法提升2.8%精度并降低82.9%能耗。实验验证了其在小目标检测和事件数据处理的优越性,为边缘计算应用提供了新范式。

hasakie的博客 1107

JAVA1.5范型

本文将介绍J2SE 5.0中三个比较重要的特性: 枚举类型, 注释类型, 范型, 并在此基础上介绍在如何在Eclipse 3.1开发环境中开发枚举类型, 注释类型和范型应用。J2SE 5.0 (Tiger)的发布是Java语言发展史上的一个重要的里程碑, 是迄今为止在 Java 编程方面所取得的最大进步。J2SE 5.0提供了很多令人激动的特性。这些特性包括范型(generics)的支持,

1856

大数据课程综合实验案例:网站用户行为分析

大数据课程综合实验案例1 案例简介1.1 案例目的1.2 适用对象1.3 时间安排1.4 预备知识1.5 硬件要求1.6 软件工具1.7 数据集1.8 案例任务1.9 实验步骤2 本地数据上传到数据仓库Hive2.1 实验数据集的下载2.2 数据集的预处理(1)删除文件第一行记录,即字段名称(2)对字段进行预处理(3)导入数据库3 Hive数据分析3.1 操作Hive3.2 简单查询分析3.3 查询条数统计分析3.4 关键字条件查询分析3.4.1 以关键字的存在区间为条件的查询3.4.2 关键字赋予给定值为

weixin_44616879的博客 1万+

J2SE 5.0 新特性

The Tiger feature list is defined in JSR-176 (J2SE 5.0 (Tiger) Release Content), which serves as an umbrella JSR that only lists APIs defined in other component JSRs. Please see JSR-176 for details ab

设计模式空间 1312

fluent二维叶型仿真_Fluent案例4【自然对流】

自然对流来了!!江苏的高校好多开学了,我啥时候才能开学另外,刚才看了何同学的Mac Pro深度体验视频,我好酸/(ㄒoㄒ)/~~好想拥有一台跑仿真那种sou~sou~sou~的机器。废话不多说了,进入正题!案例题目:一个矩形空腔内有500K恒温小球,矩形空腔充斥空气,边界条件绝热,模型尺寸如下,试模拟空腔内空气流动状态做出温度变化图。(尺寸大小懒得写了,在建模部分里有)操作平台:workbench...

weixin_39724469的博客 3670

vCenter6.7证书过期导致503报错的全面修复指南:从STS证书更新到SSL信任修复

本文详细解析了VMware vCenter 6.7因STS证书过期导致503服务不可用错误的根本原因,并提供了从诊断、更新STS证书到修复SSL信任链的完整解决方案。通过命令行工具检查证书状态,使用官方脚本更新过期STS证书,并利用lsdoctor工具修复深层SSL信任问题,最终指导用户使用certificate-manager彻底重置所有证书,帮助管理员快速恢复vCenter服务。

pz890123的博客 1293

在JBuilder中使用J2SE 5.0新特性

 1、安装J2SE 5.0JBuilder2006之前的版本需要首先下载安装 J2SE 5.0(http://java.sun.com/j2se/1.5.0/download.jsp)JBuilder2006本身提供了对J2SE 5.0的支持,因此无需重新安装。2、配置路径  (1)Tools->Configure->JDKs->JDK home path 指定J2SE 5.0的安装路

幽客独往 2760

ROS学习笔记之——无人机PID调参过程记录

For cooperaive inquiries, please visit the website:guanweipeng.com

gwpscut的博客 6827

J2SE 5.0专题 之 用户接口

J2SE 5.0专题 之 用户接口作者(枯木)1.1.        引子“从Java诞生至今已有9年时间,而从第二代Java平台J2SE算起也有5个年头了。在这样的背景下,将下一个版本的版本号从1.5改为5.0可以更好的反映出新版J2SE的成熟度、稳定性、可伸缩性和安全性。” Sun公司如是解释Java的这次意义深远的变革。众所周知Sun公司从发布Java以来,对Java的每一次变更

《优快云社区电子杂志——Java杂志》官方blog 1万+

延迟相乘叠加求和 DMAS (Field II 仿真代码)

(Delay Multiply and Sum, DMAS)算法,最初是为雷达微波系统设计的,研究者们对 DMAS 波束合成方法进行了修改,并应用超声成像。结果表明,DMAS 波束合成在模拟和实验中的表现都优于传统的延时叠加(Delay and Sum, DAS),这种新方法带来的主要改进是对比度分辨率明显提高(即主瓣和侧瓣更窄),从而增加了动态范围,提高了 B 型超声图像质量。与传统 DAS 相似,DMAS 算法通过对来自超声换能器阵元的信号应用几何计算延迟来聚焦接收到的波束。

weixin_38452364的博客 3083

《计算机网络》课程大作业- 《小区局域网的设计和规划》

8.1首先,在满足用户需求方面,通过详细的需求分析,充分考虑了居民和物业管理的不同业务需求。对于居民,无论是日常的高清视频播放、在线游戏、远程办公还是智能家居设备的连接,网络都能提供稳定的高速带宽支持。从有线网络的千兆以太网技术保障稳定的有线连接,到无线网络采用 Wi - Fi 6 技术确保无线覆盖区域的高速和低延迟,满足了居民多样化的娱乐和生活需求。对于物业管理,安防监控系统的实时数据传输、物业办公自动化系统的流畅运行以及社区信息的及时发布等业务,都有针对性的网络设计。

lisangsimida的博客 2598

J2SE 5.0专题 之 语言特性

J2SE 5.0专题 之 语言特性本文作者: 高宇翔(大胃) 1.1.        背景J2SE(TM) 5.0正式发布至今已超过3个月的时间了,就在前不久,大概是在两周之前,Sun又发布了更新过的JDK 5.0 Update 1,改掉了一些第一个版本中出现的bug。 由于Java社群等待这一从1.4向5.0版本升级已经有相当长的一段时间,大家都很关心5.0中有哪些值得关

《优快云社区电子杂志——Java杂志》官方blog 1万+

【华为OD机试】真题E卷-一种字符串压缩表示的解压(C++)

有一种简易压缩算法:针对全部为小写英文字母组成的字符串,将其中连续超过两个相同字母的部分压缩为连续个数加该字母,其他部分保持原样不变。例如:字符串aaabbccccd 经过压缩变成字符串 3abb4cd请您编写解压函数,根据输入的字符串, 判断其是否为合法压缩过的字符串若输入合法则输出解压缩后的字符串 否则输出字符串!error来报告错误。

u014481728的博客 892

在 Eclipse 3.1 中体验 J2SE 5.0 的新特性: 第三部分 :范型

邹青 (qingzou@cn.ibm.com), 软件工程师, IBM 中国软件开发中心普及运算部门吴嫣 (wuyan@cn.ibm.com), 软件工程师, IBM 中国软件开发中心普及运算部门吴疆 (wujiangj@cn.ibm.com), 软件工程师, IBM 中国软件开发中心普及运算部门2005 年 7 月 01 日本文将介绍J2SE 5.0中三个比较重要的特性: 枚举类型, 注

sdbany的专栏 828

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

J2SE 5.0新特性(六)静态引入

从J2SE5开始,import不仅可以导入包或者类,还可以导入静态方法和静态域。 我们在导入类时使用import ,而静态导入则使用import static 作为关键字。 静态导入的好处是我们在某一处如果需要频繁的使用某一个静态类的静态域或属性,静态导入特性可以为我们省掉很多的代码,但同时也带来了模糊性。

ITMagic_Jack的专栏 1696

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

J2SE 1.5版本的新特性一览

到了2003的年末,J2SE1.5的beta版本就将发布了。这次发布和现在已经发布的J2SE1.4的两个更新1.4.1和1.4.2都如2003年的JavaOne大会预期的发布。如果你没有参加这次大会,或者想重新回顾一下,那么下面就是这次大会的简要内容。J2SE 1.4.1 and 1.4.2 Releases当1.4.1(开发代号“Hopper”)在2002年9月发布以及它的后续版本1.4.2(开

1156

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

J2SE 5.0新特性

J2SE 5.0新特性 http://whitfox.woku.com/article/789795.html 感觉更多的是在编译器层面作了改动,JVM层面支持新特性需要改动的地方似乎比较少。

kzjay的专栏 599

[J2SE 5.0专题][0]序言

自从J2SE 5.0于今年9月29日正式发布以来,一直希望有时间和大家一起学习它的新特性。无奈项目进度十分紧张,至今没有形成一个比较清晰的认识。就目前的情形看来,估计紧张的日子还会持续相当长的一段时间,于是我暗下决心:既然时间总是不够用,那么我就争取在工作之余挤出点时间,通过在我的blog上发表学习笔记的方式,一方面与大家分享我的学习心得,一方面也是整理思路,同时促使自己更有效的学习新的知识。

906

J2SE5.0新特性

[1]J2SE5.0新特性之静态导入J2se5.0之前,如果需要使用其他类的静态方法,如java.lang.Math中的方法,需要写以下的代码:double value = Math.log(100)*Math.PI; 现在你只需在静态导入,然后就可以直接在代码中使用静态方法和静态字段:import static java.lang.Math.*;…double value = log(100

Jerome Kwok网络日志 1044

Eclipse3.1中体验J2SE 5.0之枚举类型

  本文将介绍J2SE 5.0中三个比较重要的特性: 枚举类型, 注释类型, 范型, 并在此基础上介绍在如何在Eclipse 3.1开发环境中开发枚举类型, 注释类型和范型应用。   J2SE 5.0 (Tiger)的发布是Java语言发展史上的一个重要的里程碑, 是迄今为止在 Java 编程方面所取得的最大进步.  J2SE 5.0提供了很多令人激动的特性.这些特性包括范型(generics)的

键者天行 9811

[转载]在 Eclipse 3.1 中体验 J2SE 5.0 的新特性: 第二部分 :注释类型

在 Eclipse 3.1 中体验 J2SE 5.0 的新特性: 第二部分 :注释类型本文将介绍J2SE 5.0中三个比较重要的特性: 枚举类型, 注释类型, 范型, 并在此基础上介绍在如何在Eclipse 3.1开发环境中开发...

congji3817的博客 180

Sun的Java平台最新版本J2SE 5.0开始发货

Sun Microsystems公司正式发布Java 2平台标准版(J2SE™) 5.0版。作为通过JCPsm(Java Community Process sm)研发的最大规模的项目之一,有大约160位专家成员参与了J2SE 5.0版本的研发。J2SE 5.0提供了100多个新特性,为广大开发商带来诸多好处:易用性、高性能和高缩放能力、系统监控与管理,以及丰富的客户桌面功能等。从易用性和各个破记

农民田园 1286

J2SE5.0新特性之静态导入

J2SE5.0新特性之静态导入晁岳攀 smallnest@163.com J2se5.0之前,如果需要使用其他类的静态方法,如java.lang.Math中的方法,需要写以下的代码:double value = Math.log(100)*Math.PI; 现在你只需在静态导入,然后就可以直接在代码中使用静态方法和静态字段:import static java.lang

鸟窝 1374

Sun公司的Java平台最新版本J2SE 5.0

100多个新特性使J2SE 5.0成为Java开发者的新一代平台    (2004年10月9日讯) Sun Microsystems公司正式发布Java 2平台标准版(J2SE™) 5.0版。作为通过JCPsm(Java Community Process sm)研发的最大规模的项目之一,有大约160位专家成员参与了J2SE 5.0版本的研发。J2SE 5.0提供了100多个新特性,为

首席技术执行官CTO(Chief Technology Officer)|技术总监--邓斌博客 2416

J2SE 5.0新特性 之 线程

J2SE 5.0新特性 之 线程作者:汪泓(hongwang_001@163.com)1.1.        进程、线程与线程池      所谓进程是一种在自身定址空间中执行的相对独立的程序,是现代操作系统的基石。现在的多任务操作系统,会周期性地将CPU的时间划分给每一个进程,使操作系统得以同时执行一个以上的程序。       线程则是进程中的一个“单一连续控制的流程”,一个进程中

《优快云社区电子杂志——Java杂志》官方blog 1万+
上一篇: JAVA 枚举
下一篇: 倒霉催的十一
欧德曼
博客等级 码龄19年 63粉丝 82原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值