爆款云主机2核4G限时秒杀,88元/年起!
查看详情

活动

天翼云最新优惠活动,涵盖免费试用,产品折扣等,助您降本增效!
热门活动
  • 618智算钜惠季 爆款云主机2核4G限时秒杀,88元/年起!
  • 免费体验DeepSeek,上天翼云息壤 NEW 新老用户均可免费体验2500万Tokens,限时两周
  • 云上钜惠 HOT 爆款云主机全场特惠,更有万元锦鲤券等你来领!
  • 算力套餐 HOT 让算力触手可及
  • 天翼云脑AOne NEW 连接、保护、办公,All-in-One!
  • 中小企业应用上云专场 产品组合下单即享折上9折起,助力企业快速上云
  • 息壤高校钜惠活动 NEW 天翼云息壤杯高校AI大赛,数款产品享受线上订购超值特惠
  • 天翼云电脑专场 HOT 移动办公新选择,爆款4核8G畅享1年3.5折起,快来抢购!
  • 天翼云奖励推广计划 加入成为云推官,推荐新用户注册下单得现金奖励
免费活动
  • 免费试用中心 HOT 多款云产品免费试用,快来开启云上之旅
  • 天翼云用户体验官 NEW 您的洞察,重塑科技边界

智算服务

打造统一的产品能力,实现算网调度、训练推理、技术架构、资源管理一体化智算服务
智算云(DeepSeek专区)
科研助手
  • 算力商城
  • 应用商城
  • 开发机
  • 并行计算
算力互联调度平台
  • 应用市场
  • 算力市场
  • 算力调度推荐
一站式智算服务平台
  • 模型广场
  • 体验中心
  • 服务接入
智算一体机
  • 智算一体机
大模型
  • DeepSeek-R1-昇腾版(671B)
  • DeepSeek-R1-英伟达版(671B)
  • DeepSeek-V3-昇腾版(671B)
  • DeepSeek-R1-Distill-Llama-70B
  • DeepSeek-R1-Distill-Qwen-32B
  • Qwen2-72B-Instruct
  • StableDiffusion-V2.1
  • TeleChat-12B

应用商城

天翼云精选行业优秀合作伙伴及千余款商品,提供一站式云上应用服务
进入甄选商城进入云市场创新解决方案
办公协同
  • WPS云文档
  • 安全邮箱
  • EMM手机管家
  • 智能商业平台
财务管理
  • 工资条
  • 税务风控云
企业应用
  • 翼信息化运维服务
  • 翼视频云归档解决方案
工业能源
  • 智慧工厂_生产流程管理解决方案
  • 智慧工地
建站工具
  • SSL证书
  • 新域名服务
网络工具
  • 翼云加速
灾备迁移
  • 云管家2.0
  • 翼备份
资源管理
  • 全栈混合云敏捷版(软件)
  • 全栈混合云敏捷版(一体机)
行业应用
  • 翼电子教室
  • 翼智慧显示一体化解决方案

合作伙伴

天翼云携手合作伙伴,共创云上生态,合作共赢
天翼云生态合作中心
  • 天翼云生态合作中心
天翼云渠道合作伙伴
  • 天翼云代理渠道合作伙伴
天翼云服务合作伙伴
  • 天翼云集成商交付能力认证
天翼云应用合作伙伴
  • 天翼云云市场合作伙伴
  • 天翼云甄选商城合作伙伴
天翼云技术合作伙伴
  • 天翼云OpenAPI中心
  • 天翼云EasyCoding平台
天翼云培训认证
  • 天翼云学堂
  • 天翼云市场商学院
天翼云合作计划
  • 云汇计划
天翼云东升计划
  • 适配中心
  • 东升计划
  • 适配互认证

开发者

开发者相关功能入口汇聚
技术社区
  • 专栏文章
  • 互动问答
  • 技术视频
资源与工具
  • OpenAPI中心
开放能力
  • EasyCoding敏捷开发平台
培训与认证
  • 天翼云学堂
  • 天翼云认证
魔乐社区
  • 魔乐社区

支持与服务

为您提供全方位支持与服务,全流程技术保障,助您轻松上云,安全无忧
文档与工具
  • 文档中心
  • 新手上云
  • 自助服务
  • OpenAPI中心
定价
  • 价格计算器
  • 定价策略
基础服务
  • 售前咨询
  • 在线支持
  • 在线支持
  • 工单服务
  • 建议与反馈
  • 用户体验官
  • 服务保障
  • 客户公告
  • 会员中心
增值服务
  • 红心服务
  • 首保服务
  • 客户支持计划
  • 专家技术服务
  • 备案管家

了解天翼云

天翼云秉承央企使命,致力于成为数字经济主力军,投身科技强国伟大事业,为用户提供安全、普惠云服务
品牌介绍
  • 关于天翼云
  • 智算云
  • 天翼云4.0
  • 新闻资讯
  • 天翼云APP
基础设施
  • 全球基础设施
  • 信任中心
最佳实践
  • 精选案例
  • 超级探访
  • 云杂志
  • 分析师和白皮书
  • 天翼云·创新直播间
市场活动
  • 2025智能云生态大会
  • 2024智算云生态大会
  • 2023云生态大会
  • 2022云生态大会
  • 天翼云中国行
天翼云
  • 活动
  • 智算服务
  • 产品
  • 解决方案
  • 应用商城
  • 合作伙伴
  • 开发者
  • 支持与服务
  • 了解天翼云
      • 文档
      • 控制中心
      • 备案
      • 管理中心

      自定义泛型

      首页 知识中心 其他 文章详情页

      自定义泛型

      2023-05-30 07:49:37 阅读次数:443

      List,泛型

      1. 基本语法  560

      class 类名  {/ /...表示可可以有多个泛型

      成员

      }

      ➢注意细节

      1)普通成员可以使用泛型(属性、方法)

      2)使用泛型的数组,不能初始化

      3)静态方法中不能使用类的泛型

      4)泛型类的类型,是在创建对象时确定的(因为创建对象时,需要指定确定类型)

      5)如果在创建对象时,没有指定类型,默认为Object

      代码在com.stulzl.generic_custom.包中

      Generic_Custom 

      package com.stulzl.generic_custom;
      
      //自定义泛型案例说明  560
      public class Generic_Custom {
          public static void main(String[] args) {
      
          }
      }
      //解读
      //1. Tiger 后面泛型,所以我们把 Tiger 就称为自定义泛型类
      //2, T, R, M 泛型的标识符, 一般是单个大写字母
      //3. 泛型标识符可以有多个.
      class Tiger{
          String name;
          //4. 普通成员可以使用泛型 (属性、方法)
          R r;
          M m;
          T t;
          //使用泛型的数组,不能初始化,但可以定义
          //因为数组在 new 不能确定 T 的类型,就无法在内存开空间
          //T[] ts = new T[8];//这里的8就是初始化
          T[] ts;
      
          public Tiger(String name, R r, M m, T t) {//构造器就可以使用泛型
              this.name = name;
              this.r = r;
              this.m = m;
              this.t = t;
          }
      
          //随便写一个静态方法
          //静态方法中不能使用类的泛型
          //因为静态是和类相关的,在类加载时,对象还没有创建
          //所以,如果静态方法和静态属性使用了泛型,JVM 就无法完成初始化
      //    public static void m1(M m){
      //
      //    }
      
          public String getName() {//返回类型使用泛型
              return name;
          }
      
          public void setName(String name) {//方法使用泛型
              this.name = name;
          }
      
          public R getR() {
              return r;
          }
      
          public void setR(R r) {
              this.r = r;
          }
      
          public M getM() {
              return m;
          }
      
          public void setM(M m) {
              this.m = m;
          }
      
          public T getT() {
              return t;
          }
      
          public void setT(T t) {
              this.t = t;
          }
      }

      2. 应用练习  560

      2.1 判断是否正确

      自定义泛型

      代码在com.stulzl.generic_custom_exercise01.包中

      Generic_CustomExercise01
      package com.stulzl.generic_custom_exercise01;
      
      import java.util.Arrays;
      
      //自定义泛型类练习01 判断是否正确 560
      public class Generic_CustomExercise01 {
          public static void main(String[] args) {
      
              //T=Double  R=String  M=Integer
              Tiger g = new Tiger<>("john");
              g.setT(10.9); //OK
              //g.setT("yy"); //错误,类型不对,因为给他的泛型是Double类型
              System.out.println(g);
              Tiger g2 = new Tiger("john~~");//OK T=Object R=Object M=Object
              g2.setT("yy"); //OK ,因为 T=Object "yy"=String 是Object子类
              System.out.println("g2=" + g2);
          }
      }
      //解读
      //1. Tiger 后面泛型,所以我们把 Tiger 就称为自定义泛型类
      //2, T, R, M 泛型的标识符, 一般是单个大写字母
      //3. 泛型标识符可以有多个.
      class Tiger{
          String name;
          //4. 普通成员可以使用泛型 (属性、方法)
          R r;
          M m;
          T t;
          //使用泛型的数组,不能初始化,但可以定义
          //因为数组在 new 不能确定 T 的类型,就无法在内存开空间
          //T[] ts = new T[8];//这里的8就是初始化
          T[] ts;
      
          public Tiger(String name){
              this.name=name;
          }
          public Tiger( R r, M m, T t) {//构造器就可以使用泛型
      
              this.r = r;
              this.m = m;
              this.t = t;
          }
      
          //随便写一个静态方法
          //静态方法中不能使用类的泛型
          //因为静态是和类相关的,在类加载时,对象还没有创建
          //所以,如果静态方法和静态属性使用了泛型,JVM 就无法完成初始化
      //    public static void m1(M m){
      //
      //    }
      
          public String getName() {//返回类型使用泛型
              return name;
          }
      
          public void setName(String name) {//方法使用泛型
              this.name = name;
          }
      
          public R getR() {
              return r;
          }
      
          public void setR(R r) {
              this.r = r;
          }
      
          public M getM() {
              return m;
          }
      
          public void setM(M m) {
              this.m = m;
          }
      
          public T getT() {
              return t;
          }
      
          public void setT(T t) {
              this.t = t;
          }
      
          @Override
          public String toString() {
              return "Tiger{" +
                      "name='" + name + '\'' +
                      ", r=" + r +
                      ", m=" + m +
                      ", t=" + t +
                      ", ts=" + Arrays.toString(ts) +
                      '}';
          }
      }

      3. 自定义泛型接口  561

      3.1 基本语法

      interface 接口名 . {

      }

      3.2 注意细节

      1)接口中, 静态成员也不能使用泛型(这个和泛型类规定一样)

      2)泛型接口的类型,在继承接口或者实现接口时确定

      3)没有指定类型,默认为Object 

      3.3 案例演示  561

      代码在com.stulzl.generic_custom_interface.包中

      Generic_customInterface

      package com.stulzl.generic_custom_interface;
      
      //自定义泛型接口  561
      public class Generic_customInterface {
          public static void main(String[] args) {
      
          }
      }
      interface IUsb {
          int n = 10;
          //1)接口中, 静态成员也不能使用泛型(这个和泛型类规定一样)
          //U name; 不能这样使用,因为接口中的成员都是静态性质的
      
          //普通方法中,可以使用接口泛型
          R get(U u);//因为在接口中方法可以省略写
      
          void hi(R r);
      
          void run(R r1, R r2, U u1, U u2);
      
          //在jdk8 中,可以在接口中,使用默认方法, 也是可以使用泛型
          default R method(U u) {
              return null;
          }
      }
      //2) 2.1 泛型接口的类型,在继承接口或者实现接口时确定
      //在继承接口 指定泛型接口的类型
      interface IA extends IUsb{//IA阶乘接口IUsb,并指定泛型类型
      
      }
      //当我们去实现 IA 接口时,因为 IA 在继承 IUsu 接口时,指定了 U 为 String R 为 Double
      //,在实现 IUsu 接口的方法时,使用 String 替换 U, 是 Double 替换 R
      class AA implements IA{//AA实现IA接口
          //以下都是接口IUsb的方法实现
          @Override
          public Double get(String s) {
              return null;
          }
          @Override
          public void hi(Double aDouble) {
      
          }
          @Override
          public void run(Double r1, Double r2, String u1, String u2) {
      
          }
      }
      
      // 2.2 实现接口时,直接指定泛型接口的类型
      //给 U 指定 Integer 给 R 指定了 Float
      //所以,当我们实现 IUsb 方法时,会使用 Integer 替换 U, 使用 Float 替换 R
      class BB implements IUsb{
      
          @Override
          public Float get(Integer integer) {
              return null;
          }
      
          @Override
          public void hi(Float aFloat) {
      
          }
      
          @Override
          public void run(Float r1, Float r2, Integer u1, Integer u2) {
      
          }
      }
      
      //3)没有指定类型,默认为Object
      //建议直接写成 IUsb
      class CC implements IUsb{//等价 class CC implements IUsb {}
          @Override
          public Object get(Object o) {
              return null;
          }
      
          @Override
          public void hi(Object o) {
      
          }
      
          @Override
          public void run(Object r1, Object r2, Object u1, Object u2) {
      
          }
      }

      4. 自定义泛型方法  562

      4.1 基本语法

      修饰符返回类型方法名(参数列表) {

      }

      4.2 注意细节

      1.泛型方法,可以定义在普通类中,也可以定义在泛型类中

      2.当泛型方法被调用时,类型会确定

      3. public void eat(E e) {}, 修饰符后没有eat方法不是泛型方法,而是使用了泛型

      代码在com.stulzl.generic_custom_method.包中

      Generic_CustomMethod
      package com.stulzl.generic_custom_method;
      
      import java.util.ArrayList;
      
      //自定义泛型方法 562
      @SuppressWarnings({"all"})
      public class Generic_CustomMethod {
          public static void main(String[] args) {
              Car car = new Car();
              //2. 当泛型方法被调用时,类型会确定
              car.fly("波音",180000);//当调用方法时,传入参数,编译器,就会确定泛型类型
              System.out.println("=======");
              car.fly(300, 100.1);//当调用方法时,就会确定泛型类型,这是的类型是Integer和Double
      
              //测试
              //T->String, R-> ArrayList
              Fish fish = new Fish<>();
              fish.hello(new ArrayList(), 11.3f);
          }
      }
      //1.泛型方法,可以定义在普通类中,也可以定义在泛型类中
      class Car{//普通类
          public void run(){//普通方法
      
          }
          //说明 泛型方法
          //1.  就是泛型
          //2. 是提供给 fly 使用的
          public void fly(T t,R r){//泛型方法
              System.out.println(t.getClass());//类型//class java.lang.String
              System.out.println(r.getClass());//类型//class java.lang.Integer
          }
      }
      class Fish{//泛型类
          public void run() {//普通方法
          }
          public void eat(U u, M m) {//泛型方法
          }
      
          //3. public void eat(E e) {}, 修饰符后没有eat方法不是泛型方法,而是使用了泛型
          //说明
          //1. 下面 hi 方法不是泛型方法
          //2. 是 hi 方法使用了类声明的 泛型
          public void hi(T t){
      
          }
      
          //泛型方法,可以使用类声明的泛型,也可以使用自己声明泛型
          public void hello(R r,K k){
              System.out.println(r.getClass());//ArrayList
              System.out.println(k.getClass());//Float
          }
      }

      5. 自定义泛型类练习  563

      练习:下面代码是否正确,如果有错误,修改正确,并说明输出什么?

      自定义泛型

      代码在com.stulzl.generic_custom_exercise01.包中

      Generic_CustomExercise01
      package com.stulzl.generic_custom_exercise01;
      
      //自定义泛型类练习  563
      //练习:下面代码是否正确,如果有错误,修改正确,并说明输出什么?
      public class Generic_CustomExercise01 {
          public static void main(String[] args) {
              //T->String, R->Integer, M->Double
              Apple apple = new Apple<>();
      
              apple.fly(10);// 10会被自动装箱 类型Integer, 输出Integer
              apple.fly(new Dog());//类型Dog
          }
      }
      class Apple {//自定义泛型类
      
          public  void fly(E e) {  //泛型方法
              System.out.println(e.getClass().getSimpleName());//getSimpleName()方法可以只显示类型
          }
      
          //public void eat(U u) {}//错误,因为U没有声明
      
          public void run(M m) {
          } //ok
      }
      
      class Dog {
      }

      6.  泛型的继承和通配符  564

      6.1 泛型的继承和通配符说明

      1)泛型不具备继承性List

      2)  :支持任意泛型类型

      3) :支持A类以及A类的子类,规定了泛型的上限

      4) :支持A类以及A类的父类,不限于直接父类,规定了泛型的下限

      代码在com.stulzl.generic_extends.包中

      Generic_Extends

      package com.stulzl.generic_extends;
      
      import java.util.ArrayList;
      import java.util.List;
      
      //泛型的继承和通配符说明  564
      public class Generic_Extends {
          public static void main(String[] args) {
              //泛型不具备继承性
              //List list = new ArrayList();
      
              //举例说明下面三个方法的使用
              List list1 = new ArrayList<>();
              List list2 = new ArrayList<>();
              List list3 = new ArrayList<>();
              List list4 = new ArrayList<>();
              List list5 = new ArrayList<>();
      
              //如果是List c,可以接收任意类型的泛型类型
              printCollection1(list1);
              printCollection1(list2);
              printCollection1(list3);
              printCollection1(list4);
              printCollection1(list5);
      
              //List c: 表示 上限,即要接受AA或者AA子类才行
      //        printCollection2(list1);//×//Object不是AA或者AA子类
      //        printCollection2(list2);//×//String不是AA或者AA子类
              printCollection2(list3);//√//类型AA
              printCollection2(list4);//√//类型BB
              printCollection2(list5);//√//类型CC
      
              //List c: 支持AA类以及AA类的父类,不限于直接父类
              printCollection3(list1);//√//Object肯定是AA父类啊
              //printCollection3(list2);//×
              printCollection3(list3);//√//类型AA
              //printCollection3(list4);//×
              //printCollection3(list5);//×
      
          }
      
          // ? extends AA 表示 上限,可以接受 AA或者AA子类
          public static void printCollection2(List c) {
              for (Object object : c) {
                  System.out.println(object);
              }
          }
      
          //说明: List 表示 任意的泛型类型都可以接受
          public static void printCollection1(List c) {
              for (Object object : c) { // 通配符,取出时,就是Object
                  System.out.println(object);
              }
          }
      
      
      
          // ? super 子类类名AA:支持AA类以及AA类的父类,不限于直接父类,
          //规定了泛型的下限
          public static void printCollection3(List c) {
              for (Object object : c) {
                  System.out.println(object);
              }
          }
      }
      class AA{
      
      }
      class BB extends AA{
      
      }
      class CC extends BB{
      
      }
      版权声明:本文内容来自第三方投稿或授权转载,原文地址:https://blog.51cto.com/u_15784725/6302201,作者:进击的菜鸟子,版权归原作者所有。本网站转在其作品的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如因作品内容、版权等问题需要同本网站联系,请发邮件至ctyunbbs@chinatelecom.cn沟通。

      上一篇:成员内部类

      下一篇:类变量和方法

      相关文章

      2025-05-14 10:33:16

      30天拿下Rust之泛型

      在Rust语言中,泛型是一种强大的工具,它允许我们编写可复用且灵活的代码。通过泛型,我们可以创建适用于多种类型的数据结构和函数,而无需为每种类型都重复编写相同的逻辑。在Rust中,泛型通过指定类型参数来实现,这些类型参数会在编译时被具体类型所替换。

      2025-05-14 10:33:16
      Rust , 参数 , 实例 , 泛型 , 示例 , 类型
      2025-05-13 09:53:23

      Java交换map的key和value值

      在Java中,我们都知道直接交换Map的key和value是不被允许的,因为Map的接口设计是基于key-value对的,其中key是唯一的,并且是不可变的(在HashMap等常见的实现中,虽然key的引用是不可变的,但key对象本身如果是可变的,它的内容是可以变化的,但这样做可能会导致不正确的行为或异常)。

      2025-05-13 09:53:23
      key , List , Map , null , value , 映射 , 键值
      2025-05-12 08:40:18

      List<T>的使用

      List<T>的使用

      2025-05-12 08:40:18
      List , string
      2025-04-18 07:10:30

      详解Typescript中的泛型

      在 TypeScript 中,泛型(Generics)是一种在编写可重用、灵活的代码时使用的工具。它允许我们在定义函数、类或接口时使用类型参数,以便在使用时指定具体的类型。

      2025-04-18 07:10:30
      User , 参数 , 属性 , 接口 , 泛型 , 示例 , 类型
      2025-04-15 09:20:33

      初学Java,List和ListIterator(二十八)

      List代表的是一个有序的集合,每一个元素都有一个对应索引。List是Collection的子接口,所以Collection的所有方法都可以调用,另外也有它自身的方法。

      2025-04-15 09:20:33
      Arrays , java , List , Struts2
      2025-04-15 09:20:22

      初学Java,泛型类型通配符(三十七)

      初学Java,泛型类型通配符(三十七)

      2025-04-15 09:20:22
      List , String , 泛型 , 父类 , 类型 , 编译 , 通配符
      2025-04-11 07:11:40

      java泛型学习篇(二)

      java泛型学习篇(二)

      2025-04-11 07:11:40
      使用 , 接口 , 方法 , 泛型 , 类型 , 自定义 , 默认
      2025-04-09 09:15:47

      恕我直言你可能真的不会java第11篇-Stream API终端操作

      恕我直言你可能真的不会java第11篇-Stream API终端操作

      2025-04-09 09:15:47
      List , Stream , 元素 , 收集 , 方法 , 管道 , 集合
      2025-04-01 10:28:37

      【JAVA】-- 集合(三)(Set)

      Set接口和List接口一样,同样继承自Collection接口,与其接口方法基本一致,只是比Collection接口更加严格,与List接口不同的是其元素无序,并且保证元素不重复。

      2025-04-01 10:28:37
      Collection , HashSet , List , 元素 , 存储 , 接口 , 示例
      2025-03-31 08:48:59

      Spark+AI案例实战之第1阶段Scala编程第016讲:Scala中List剖析及代码实战

      Spark+AI案例实战之第1阶段Scala编程第016讲:Scala中List剖析及代码实战

      2025-03-31 08:48:59
      AI , List , Scala , 实战
      查看更多
      推荐标签

      作者介绍

      天翼云小翼
      天翼云用户

      文章

      33561

      阅读量

      5236544

      查看更多

      最新文章

      30天拿下Rust之泛型

      2025-05-14 10:33:16

      List<T>的使用

      2025-05-12 08:40:18

      Android 重新回顾经典异步类 AsyncTask

      2025-03-17 07:50:46

      Vue学习笔记:VCA下使用provide与 inject

      2025-01-06 08:42:49

      【leetcode】动态规划 - 杨辉三角

      2024-12-16 09:17:45

      泛型的深入研究——面试时说出能加分

      2024-12-02 08:39:33

      查看更多

      热门文章

      泛型类的定义与实例化 c#

      2024-09-24 06:31:17

      TypeScript-泛型兼容性

      2023-05-16 09:47:20

      TypeScript-类型别名

      2023-06-08 06:22:02

      java基础-泛型

      2023-05-19 02:20:27

      ts重点学习74-泛型的基本使用

      2023-05-23 09:26:20

      TypeScript-泛型

      2023-06-16 06:11:01

      查看更多

      热门标签

      linux java python javascript 数组 前端 docker Linux vue 函数 shell git 节点 容器 示例
      查看更多

      相关产品

      弹性云主机

      随时自助获取、弹性伸缩的云服务器资源

      天翼云电脑(公众版)

      便捷、安全、高效的云电脑服务

      对象存储

      高品质、低成本的云上存储服务

      云硬盘

      为云上计算资源提供持久性块存储

      查看更多

      随机文章

      前端工作总结270-el-table使用

      JAVA可变参数 ( IDEA演示 )

      ts重点学习8-泛型类定义

      TypeScript-泛型兼容性

      方法或函数也可以用泛型

      1.9 集合

      • 7*24小时售后
      • 无忧退款
      • 免费备案
      • 专家服务
      售前咨询热线
      400-810-9889转1
      关注天翼云
      • 旗舰店
      • 天翼云APP
      • 天翼云微信公众号
      服务与支持
      • 备案中心
      • 售前咨询
      • 智能客服
      • 自助服务
      • 工单管理
      • 客户公告
      • 涉诈举报
      账户管理
      • 管理中心
      • 订单管理
      • 余额管理
      • 发票管理
      • 充值汇款
      • 续费管理
      快速入口
      • 天翼云旗舰店
      • 文档中心
      • 最新活动
      • 免费试用
      • 信任中心
      • 天翼云学堂
      云网生态
      • 甄选商城
      • 渠道合作
      • 云市场合作
      了解天翼云
      • 关于天翼云
      • 天翼云APP
      • 服务案例
      • 新闻资讯
      • 联系我们
      热门产品
      • 云电脑
      • 弹性云主机
      • 云电脑政企版
      • 天翼云手机
      • 云数据库
      • 对象存储
      • 云硬盘
      • Web应用防火墙
      • 服务器安全卫士
      • CDN加速
      热门推荐
      • 云服务备份
      • 边缘安全加速平台
      • 全站加速
      • 安全加速
      • 云服务器
      • 云主机
      • 智能边缘云
      • 应用编排服务
      • 微服务引擎
      • 共享流量包
      更多推荐
      • web应用防火墙
      • 密钥管理
      • 等保咨询
      • 安全专区
      • 应用运维管理
      • 云日志服务
      • 文档数据库服务
      • 云搜索服务
      • 数据湖探索
      • 数据仓库服务
      友情链接
      • 中国电信集团
      • 189邮箱
      • 天翼企业云盘
      • 天翼云盘
      ©2025 天翼云科技有限公司版权所有 增值电信业务经营许可证A2.B1.B2-20090001
      公司地址:北京市东城区青龙胡同甲1号、3号2幢2层205-32室
      • 用户协议
      • 隐私政策
      • 个人信息保护
      • 法律声明
      备案 京公网安备11010802043424号 京ICP备 2021034386号