2 u012733415 u012733415 于 2015.06.14 11:15 提问

关于Integer a=1;的问题

Integer是int封装类,它可以直接Integer a=1; 创建对象。

查询资料,Integer a=1;实际上执行的是Integer a=Integer.valueOf(1)

我参考Integer的源代码也创建了个Integer类,可是为何不能直接赋值?

自己创建的Integer类

public class Integer extends Number implements Comparable<Integer> {

    //Integer的值
    private static int value;

    /**
     * 构造方法用来 new创建对象
     * @param v
     */
    public Integer (int v){
        this.value=v;
    }


    /**
     * 静态方法,用来直接=赋值( 可是就是不管用。求解决)
     * @param value
     * @return
     */
    public static Integer valueOf(int value){
        return new Integer(value); 
    }


    /**
     * 以下都是抽象类的抽象方法的实现,和接口的方法的实现,
     */

    public int compareTo(Integer o) {

        return (int) this.value;
    }


    public int intValue() {

        return (int) this.value;
    }


    public long longValue() {

        return this.value;
    }


    public float floatValue() {

        return this.value;
    }


    public double doubleValue() {

        return this.value;
    }



    public String toString() {
        return this.value+"";
    }

}

测试类
测试类

6个回答

u012733415
u012733415   2015.06.14 11:18

为什么我创建的类不能直接赋值?****_

wdfxspt
wdfxspt   2015.06.14 11:21

不是不能赋值,你的jdk可能比较低,切换高的。

u012733415
u012733415 需要什么版本,你看看下面我截图的版本,
大约 3 年之前 回复
beacon_2011
beacon_2011   Rxr 2015.06.14 11:55

你是说integer没直接复制么?升级一下jdk看看底层代码,没关注过

u012733415
u012733415 需要什么版本,你看看下面我截图的版本,
大约 3 年之前 回复
u012733415
u012733415   2015.06.14 13:02

图片说明

这是我的jdk版本

cuiwei1026522829
cuiwei1026522829   Ds   Rxr 2015.06.14 14:39

我觉得跟版本没有关系,,提示报什么错误了么?肯定是没有转换成功啊,你肯定也看了原来的源代码参考写的,不应该有大问题,会不会是没有调用你的那个
类?一般是默认java.lang.*包

u012733415
u012733415 声明的那个类,的确是我写的那个类,请问是不是其他地方出错了?
大约 3 年之前 回复
zhi_ai_yaya
zhi_ai_yaya   Rxr 2015.06.15 09:23
//Integer的值
private static int value;

    不应该定义为static吧。
u012733415
u012733415 它只是存储个值,跟是不是静态没有关系
大约 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
关于int和Integer比较的问题
在看到好几道有关这个int和Integer的值比较的问题,于是捣腾了一番,也释了疑惑。 1. Integer a = new Integer(12); Integer b = new Integer(12); System.out.println(a == b);输出结果:false 分析:是两个integer引用的比较,==比较的是引用(内存地址) 2. Inte
java 关于int和Integer的面试题
这道面试题是从Java面试题全集(上)上看到的总结了一下基本类型的封装类型和基本类型的拆封装问题,特此总结和转载一下。int的包装类就是Integer,从Java 5开始引入了自动装箱/拆箱机制,使得二者可以相互转换。1.包装类Java是一个近乎纯洁的面向对象编程语言,但是为了编程的方便还是引入了基本数据类型,但是为了能够将这些基本数据类型当成对象操作,Java为每一个基本数据类型都引入了对应的包装
java基础------new Integer(1)和Integer.valueOf(1)的区别
java.lang包中的Integer类是我们比较常用的类,比如以下代码: Integer a=new Integer(1) Integer a=Integer.valueOf(1); 两个都是得到一个Integer对象,但是Integer.valueOf的效率高。为什
Integer a = 128, Integer b = 128, a==b ; Integer c = 1 , integer d =1 , c==d
Integer a = 128;         Integer b = 128;         System.out.println(a==b);         Integer c = 1;         Integer d = 1;         System.out.println(c==d); 执行结果:false                     true
python - LintCode 1. A + B 问题
1. A + B 问题 给出两个整数a和b, 求他们的和, 但不能使用 + 等数学运算符。 注意事项你不需要从输入流读入数据,只需要根据aplusb的两个参数a和b,计算他们的和并返回就行。说明a和b都是 32位 整数么?是的我可以使用位运算符么?当然可以样例如果 a=1 并且 b=2,返回3挑战 显然你可以直接 return a + b,但是你是否可以挑战一下不这样做?解决思路:当a和b均为正数...
Integer integer1 = 3; 和Integer integer2 = 3; 是否相等,Integer integer3 = 300;和Integer integer3 = 300
本文将介绍一下Java中关于Integer的缓存知识,首先看一下下面的代码,猜测一下会输出什么结果。 [java] view plain copy /**   * Created by lanxing on 16-3-13.   */   public class IntegerCache {       public static vo
Integer 变量A,B, 在不声明其它变量的情况下,将他们的值交换,如:A:=1; B:=2; 交换后, A=2, B=1,
package day01; public class Test1 { public static void main(String[] args) { //不利用其它变量时期A和B的值交换 Integer A=1; Integer B=2; // fun1(A, B); //异或 fun3(A, B); } public static void f
转 2006 年上半年软件评测师试题
 转 2006 年上半年软件评测师试题 2006 年上半年软件评测师上午试题 ● 在计算机系统中,存取速度最快的是 ___(1)___ 。    (1)A . CPU 内部寄存器        B .计算机的高速缓存 Cache    C .计算机的主存         D .大容量磁盘    ● 模块的耦合度描述了 ___(2)___ 。    (2)A .模块内各种元素结合
当你运行Integer i =1时,发生了什么?
引言:今天上班时,有个同事在群里问了一句 public static void main(String[] args) { Integer a = 1; Integer b = a; b = 2; System.out.println(a); } 这个输出什么。以我对于我们猿的尿性的熟知程度,当机立断告诉他 “1”,
LeetCode-Number of 1 Bits
问题描述Write a function that takes an unsigned integer and returns the number of ’1’ bits it has (also known as the Hamming weight).For example, the 32-bit integer ’11’ has binary representation 000000000