我有一个扩展LinkedList类的类。这是一段代码摘录:
class SortedList<Integer> extends LinkedList<Integer> {
int intMethod(Integer integerObject){
return integerObject;
}
}
预期会返回自动拆箱的int值。但是由于某种原因,编译器会抛出一个错误,指出类型不兼容,所需的类型为int,找到的类型为Integer。这可以在不同的类中很好地工作!是什么赋予了?:(
这是因为你有<Integer>
追求SortedList
。
通常,您使用T
类型参数:class SortedList<T>
,但是使用了Integer
。也就是说,您创建Integer
了一个类型参数(阴影java.lang.Integer
)。
就目前而言,您的课程相当于
class SortedList<T> extends LinkedList<T> {
int intMethod(T integerObject){
return integerObject; // <-- "Cannot convert from T to int"
}
}
删除type参数,它可以正常工作:
class SortedList extends LinkedList<Integer> {
int intMethod(Integer integerObject){
return integerObject;
}
}
我的问题是在遵循图片中的函数、应用程序和单子教程及其JavaScript版本时提出的。 当文本说functor从上下文中展开值时,我理解a- 我的问题是,整件拆开包装的事情有什么神奇之处?我的意思是,有一些自动打开“范围”变量的语言规则有什么问题?在我看来,这个操作只是某种表中的一个查找,其中符号对应于整数。 我的问题受到JavaScript版本的启发,其中是原型数组实例。所以展开确实不是火箭科学
本文向大家介绍自动装箱和拆箱?相关面试题,主要包含被问及自动装箱和拆箱?时的应答技巧和注意事项,需要的朋友参考一下 自动装箱是Java 编译器在基本数据类型和对应的对象包装类型之间做的一个转化。 比如:把int转化成 Integer,double转化成 Double,等等。反之就是自动拆箱。 原始类型: boolean,char,byte,short,int,long,float,double
本文向大家介绍浅析C# 装箱和拆箱,包括了浅析C# 装箱和拆箱的使用技巧和注意事项,需要的朋友参考一下 Object类型是所有类型的基类,其下面有ValueType类型。什么结构啊,枚举啊,都继承ValueType,这些都是值类型。其他的什么类啊,数组啊,字符串啊等等都是引用类型。 简单的说,直接继承Object的都是引用类型,继承ValueType的都是值类型。 那样的话,像整形这样的结构按理说
主要内容:装箱和拆箱,包装类的应用在 Java 的设计中提倡一种思想,即一切皆对象。但是从数据类型的划分中,我们知道 Java 中的数据类型分为基本数据类型和引用数据类型,但是基本数据类型怎么能够称为对象呢?于是 Java 为每种基本数据类型分别设计了对应的类,称之为 包装类(Wrapper Classes),也有地方称为外覆类或数据类型类。 包装类和基本数据类型的关系如下表所示。 基本数据类型及对应的包装类 序号 基本数据类型
本文向大家介绍C#中什么是装箱和拆箱?相关面试题,主要包含被问及C#中什么是装箱和拆箱?时的应答技巧和注意事项,需要的朋友参考一下 答: 装箱:把值类型转换成引用类型 拆箱:把引用类型转换成值类型 装箱:对值类型在堆中分配一个对象实例,并将该值复制到新的对象中。 (1)第一步:新分配托管堆内存(大小为值类型实例大小加上一个方法表指针。 (2)第二步:将值类型的实例字段拷贝到新分配的内存中。 (3)
本文向大家介绍什么是装箱(boxing)和拆箱(unboxing)? (*)相关面试题,主要包含被问及什么是装箱(boxing)和拆箱(unboxing)? (*)时的应答技巧和注意事项,需要的朋友参考一下 Object是引用类型,但是它的子类Int32竟然不能去Object能去的“要求必须是引用类型” 的地方,违反了继承的原则,所以需要把Int32装在Object中才能传递。 装箱:从值类型接口