首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在java中实例化递归定义的复合泛型类。

在Java中实例化递归定义的复合泛型类,可以通过以下步骤进行:

  1. 首先,需要定义一个递归的复合泛型类。复合泛型类是指类中包含自身类型作为参数的泛型。
代码语言:txt
复制
class RecursiveGeneric<T extends RecursiveGeneric<T>> {
    private T value;

    public RecursiveGeneric(T value) {
        this.value = value;
    }

    public T getValue() {
        return value;
    }

    public void setValue(T value) {
        this.value = value;
    }
}
  1. 接下来,可以实例化递归定义的复合泛型类。在实例化时,需要传入相应的类型参数。
代码语言:txt
复制
RecursiveGeneric<RecursiveGeneric<RecursiveGeneric<Integer>>> instance = 
    new RecursiveGeneric<>(new RecursiveGeneric<>(new RecursiveGeneric<>(42)));

上述代码中,我们实例化了一个三层嵌套的递归定义的复合泛型类,其中最内层的泛型参数为Integer类型。

  1. 对于复合泛型类的操作,可以通过调用相应的方法来进行。
代码语言:txt
复制
RecursiveGeneric<RecursiveGeneric<RecursiveGeneric<Integer>>> instance = 
    new RecursiveGeneric<>(new RecursiveGeneric<>(new RecursiveGeneric<>(42)));

int value = instance.getValue().getValue().getValue(); // 获取最内层的Integer值
System.out.println(value); // 输出: 42

instance.setValue(new RecursiveGeneric<>(new RecursiveGeneric<>(new RecursiveGeneric<>(100))));
int newValue = instance.getValue().getValue().getValue(); // 获取更新后的Integer值
System.out.println(newValue); // 输出: 100

上述代码中,我们通过调用getValue()方法获取最内层的Integer值,并通过调用setValue()方法更新该值。

需要注意的是,递归定义的复合泛型类在实例化时需要谨慎处理,以避免出现无限递归的情况。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

java 定义和封装实例

为了让一个java 不同类型都能在程序调用,我们常常会将此类定义,重要特点是:作用是通用,仅此我们需要传入类型不一样。...一个具体实例是,当我们采用treeTable 显示页面的数据时,后台需要进行数据重新整合,此时针对好多都会进行创建一个产生treeTable 数据。...那么我们这时最好案方法就是封装一个通用,进行调用即可,传入你要整合数据类型和整合数据即可。...    private List nodes; //传入list参数     public TreeTableUtils(List nodes, T info) {//通过构造函数初始...            }         }         return children;     } } 其中涉及知识点:递归

1.8K10

Java详解:和Class使用。方法详细使用实例

3、接口定义及使用  接口上定义定义是一样,代码如下:     [java]     view plain     copy    interface Info{       ...方法一,我们中直接把Info接口给填充好了,但我们,是可以构造成,那我们利用来构造填充接口会是怎样呢?     ...然后使用时,就是构造一个实例过程,使用过程也不变。    ...我们定义三个变量T,K,U并且把第三个变量U用来填充接口Info。...唯一不同是,要在函数定义返回值前加上标识; 5、其它用法:Class传递及数组  (1)、使用Class传递Class对象 有时,我们会遇到一个情况,比如,我们使用

3.3K50
  • Java应用

    1、 作用于编译时用于对象类型检查,运行时不起作用。 声明一对尖角括号 ,名称可以是任意字母。...2、 用于名末尾对进行声明; 在对该类进行实例化时,需要将指定为具体包装,此时,实例时,就可以起到编译时检查作用。...3.1、实现对接口指定具体包装  class GenericImpl implements GenericInterface{ @Override public...实现依然使用,但需要在实现后边,对进行重新声明 class GenericImpl2 implements GenericInterface{ @Override...当方法参数不固定时,也可以使用可变参数写法,来定义方法。

    16420

    JAVA——定义及其实例

    //方法(成员函数) }        通过下面一个例子,简单理解一下Java定义 public class CAT{// public是修饰符,class是定义关键字,CAT是名...也叫成员函数 } 一个可以包含以下变量类型: l 局部变量:方法、构造方法或者语句块定义变量被称为局部变量。...变量声明和初始都是方法,方法结束后,变量就会自动销毁 l 成员变量:成员变量是定义,方法体之外变量。这种变量创建对象时候实例。...Java,使用关键字new来创建一个新对象。...如下所示,通过对象名点方式来访问([对象名].) /* 实例 */  Person p = new Person();  /* 访问变量 */  p.name;  /* 访问方法

    1.3K30

    Java基础教程(14)-Java枚举和注解

    Java 由关键字enum 来定义一个枚举类型Java 定义枚举类型语句有以下特点:1) 使用关键字 enum ;2) 类型名称,比如这里 Season ;3) 一串允许值,4) 枚举可以单独定义一个文件...因为 enum 类型每个常量JVM只有一个唯一实例; 枚举 Enum equals 方法默认实现就是通过 == 来比较;枚举可以应用在 switch 语句中。...接口, 可以很好解决这个问题;就是定义一种模板,例如 ArrayList ,然后代码为用到创建对应 ArrayList;,既实现了编写一次,万能匹配,又通过编译器保证了类型安全...;使用时,把参数 替换为需要class类型不指定参数类型时,编译器会给出警告,且只能将 视为 Object 类型可以接口中定义类型,实现此接口必须实现正确类型编写时...类型必须⽤限定内类型来进⾏初始,否则会导致编译错误。⾮限定通配符表⽰可以⽤任意类型来替代,类型为 K T V E ?

    17410

    java:通过自定义ParameterizedType实现参数类型类型参数替换

    需求说明 如果要动态构造一个参数对象(ParameterizedType),guava提供TypeToken工具可以部分实现这个功能: 比如下面这个例子(来自guava wiki TypeToken...实现这个需求最关键就是要有一个ParameterizedType接口实现,有了这个实现,你想怎么替换都成。...可惜,不论是jdk还是guava ParameterizedTypeImpl都不是public,所以没办法直接拿来用。所以就只能自己造一个。...别逗了,还真打算从头自己写一个啊,再说自己敢用么? 直接把jdkParameterizedTypeImpl代码抄来改改就可以啦 其实这个问题我也是琢磨了好长时间才想通。...完整代码如下(中文注释部分是我增加方法),代码中用到了guavaTypeToken工具实现,只是为了少写些代码。

    4.7K80

    json 反序列多层嵌套java Type类型笔记

    json 反序列多层嵌套javaType类型笔记 val typeRef = TypeRef() val result = JSON.parseObject...) 参考文章 https://www.cnblogs.com/liqipeng/p/9148545.html 使用springmvc时,我们通常会定义类似这样通用与前端进行交互,以便于前端可以做一些统一处理...但是如果rest接口消费端就是java呢,java类型擦除却容易引入一些障碍。...//注意,某些情况下,返回数组为空。如果此类型表示嵌套在参数类型非参数类型,则会发生这种情况。...关于Type Java SE 1.5新特性,Type也是1.5才有的。它是java加入之后为了扩充类型引入

    9.4K20

    Java-ECJ和Javac处理上一点区别

    背景 ECJ(Eclipse Compiler for Java)就是Eclipse自带java编译器。 公司项目都是Eclipse上面做。...自己用了一段时间Idea觉得很爽,准备换过来写,发现公司基盘报错了。调查发现是方面的异常。整理如下。 1. 问题 公司源码肯定不能放,把问题整理之后,关键几个UML为: ?...要在Idea编译就需要把Idea编译器换成Eclipse: Preferences > Build, Execution, Deployment > Java Compiler > User Compiler...后记 看起来javac比ECJ进行了更严格检查。但是问题不止于此,整理问题过程想到以下问题待思考,记下来以后学习: 项目部署用Tomcat,依赖也是官方jdk,为什么不会报错呢?...多数文章只会介绍使用,而Class和基础性ClassJava规范里区别究竟是什么呢?

    73350

    深入分析Java反射(一)-核心库和方法

    JDK对和反射相关库集中java.lang.reflect包和java.lang包java.lang.reflect包和java.lang包是开发者可以直接使用,部分java.lang.reflect...如果想获取一个所有修饰符方法,包括所有父方法,那么建议递归调用getDeclaredMethods()(所谓递归调用就是一直追溯目标递归调用getDeclaredMethods()方法直到父为...Type接口 java.lang.reflect.Type接口是Java中所有类型共同父,这些类型包括原始类型、类型、数组类型、类型变量和基本类型,接口定义如下: public interface...我们新建一个时候,这个可以使另一个定义成员、构造方法定义内部类、方法定义内部类。可以通过当前反向获取定义当前、构造或者方法,这三种情况对应上面三个方法。...() 获取定义参数类型变量 Class<?

    92131

    Android 序列框架 Gson 原理分析,可以优化吗?

    ; @Until 注解: 声明具体或字段上,声明字段终止序列版本。...序列化时,首先使用反射获取字段值,再使用字段 BoundFiled 序列反序列化时,首先创建对象实例(下文会讨论如何创建),再使用依次使用字段 BoundField 反序列为字段类型值,...1、预置容器 TypAdapter ,会先通过容器类型 RawType 获取容器构造器,再根据实参 elementType 获取元素类型 TypeAdapter; 2、序列化时,先写入...由于 Java擦除,无法直接在 .class 语法上声明信息,Gson 方法是要求程序员创建匿名内部类,由 Gson 在运行时通过反射获取声明上信息。...原理是 Class 文件 Signature 属性会保持签名信息,而 TypeToken 只是一个工具,内部通过反射获取签名信息并返回 Type 类型。

    2.3K50

    scala 类型 最详细解释

    scala 是一个强类型语言,但是在编程时可以省略对象类型. java对象类型(type)与(class)信息 jdk1.5 前 类型与是一一映射,一致类型就一致. 1.5 后引入了,jvm...是面向对象系统里对同一数据抽象,没有之前,类型系统不存在高阶概念,直接与一一映射,而出现之后,就不在一一映射了。...类型投影(type projection) scala里,内部类型(排除定义object内部),想要表达所有的外部类A实例路径下B类型,即对 a1.B 和 a2.B及所有的 an.B类型找一个共同父类型...父类型 Java里表示某个类型是Test类型父类型,使用super关键字: //或用通配符形式: <?...,初始 0 ,(), 0.0 进行初始 然而自定义值类型进行初始,创建一个数组后是用 null 进行填充.

    86510

    Flink DataStream 类型系统 TypeInformation

    使用最多可以分为如下几类,如下图所示: 从图中可以看到 Flink 类型可以分为基本类型、数组类型、复合类型、辅助类型以及。...1.3.1 Java Tuples 类型 Flink Java 接口中定义了元组(Tuple)供用户使用。...如果一个类型满足如下条件,Flink 就会将它们作为 POJO 数据类型: POJOs 必须是一个公有,Public 修饰且独立定义,不能是内部类; POJOs 必须包含一个 Public 修饰无参构造器...1.5 类型 那些无法特别处理类型会被当做类型处理并交给 Kryo 序列框架进行序列。如果可能的话,尽可能避免使用 Kryo。Kryo 作为一个通用序列框架,通常效率不高。 2....TypeInformation 那这么多数据类型, Flink 内部又是如何表示呢? Flink 每一个具体类型都对应了一个具体 TypeInformation 实现

    4.2K51

    Effective Java笔记(不含反序列、并发、注解和枚举)

    最近把Effective Java复习了一遍,其中有比较多java最佳实践可以平时编程中用到。反序列、并发、注解和枚举这四章没看,并发这本书里讲比较简单,推荐java并发编程实战这本书。...3.序列时候必须声明中所有域都是transient和提供一个readResolve方法,否则每次反序列都会创建一个新实例 4.可以使用枚举来创建单例,这时候2、3麻烦都会消失 4.通过私有构造器强化不可实例能力...4.绝大部分情况下用复合替代继承,能隐藏被拓展细节,恶意避免被扩展api缺陷,被传染到拓展 4.要么为继承而设计并提供文档说明要么禁止继承: 1.要设计一个可被继承,需要做事情...接口只用于定义类型: 1.常量接口模式是不良模式 2.导出常量可以具体之中 7.用函数对象表示策略:策略模式 4. 1.不要在新代码中使用原生态类型: 1.每个定义了一 个原生态类型...,即不带任何实际参数,List原生态类型就是List 2.没有之前,所有的集合内都是一个Object数组,所以经常会出现将狗插入猫列表情况,而且还能运行很久。

    953110
    领券