java-关于Integer a=1;的问题

问题描述

关于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+"";
    }

}

测试类

解决方案

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

解决方案二:

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

解决方案三:

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

解决方案四:

这是我的jdk版本

解决方案五:

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

解决方案六:

//Integer的值
private static int value;

    不应该定义为static吧。
时间: 2024-08-08 15:34:52

java-关于Integer a=1;的问题的相关文章

java中 Integer a=5;和Integer a = new Integer(5);的区别?请高手赐教。

问题描述 java中 Integer a=5;和Integer a = new Integer(5);的区别?请高手赐教. /*首先要知道的常识:1.关系操作符==:计算""操作数""的 值 之间的关系,结果为true或者false;这操作数指的是所有的基本数据类型以及所有对象;2.equals():是Object类中的方法,equals()作用和==相同,但是不适用于基本数据类型:3.自己定义的类可以覆盖Object类中的equals(); *///下面来看一个例

no suitable HttpMessageConverter found for request type [java.lang.Integer]

今天在使用Spring Template的时候遇到了这个异常: no suitable HttpMessageConverter found for request type [java.lang.Integer] Google了一下然后在stackoverflow上面找到了解决方案: I have a method in Spring rest service. @RequestMapping(value = "test/process", method = RequestMetho

java.lang.Integer.toHexString(b[n] &amp;amp; 0XFF)中0XFF使用

byte[] b = {5,2,20,108}; String stmp = java.lang.Integer.toHexString(b[n] & 0XFF)   在32位的电脑中数字都是以32格式存放的,如果是一个byte(8位)类型的数字,他的高24位里面都是随机数字,低8位 才是实际的数据.java.lang.Integer.toHexString() 方法的参数是int(32位)类型,如果输入一个byte(8位)类型的数字,这个 方法会把这个数字的高24为也看作有效位,这就必然导致错

Java基础 Integer类型比较疑惑

问题描述 Java基础 Integer类型比较疑惑 求解释,为何输出都是 true ? 感谢 public static void main(String[] args) { Integer int1 = new Integer(1); Integer int2 = new Integer(1); System.out.println(int1 >= int2); //true System.out.println(int1 <= int2); //true } 解决方案 int1 和 int

Ljava.lang.Integer;cannot be cast to java.lang.Integer:JPA查询参数设置请教

问题描述 我在使用JPA时,使用如下查询语句:Query query = em.createQuery(select bean from Content bean where bean.departmentId in (:departmentIds));然后设置参数:query.setParameter("departmentIds", departmentIds);这个departmentIds是Integer[]型的.程序运行时:提示 [Ljava.lang.Integer;can

java.lang.Integer cannot be cast to

问题描述 public List<Materials> findAllMaterialsByAppid(Integer appid) {String hql1 = "select medid from Materials where appid = ? and pid = 0";List<Materials> list = this.hibernateTemplate.find(hql1, appid);if (list != null && l

java中Integer包装类的详细讲解(java二进制操作,所有进制转换)

程序员都很懒,你懂的! 今天为大家分享的是Integer这个包装类.在现实开发中,我们往往需要操作Integer,或者各种进制的转换等等.我今天就为大家详细讲解一下Integer的使用吧.看代码: package com.herman.test; public class IntegerTest { public static void main(String[] args) { System.out.println("Integer中的常量***************************

一起谈.NET技术,C#之int挑战Java之Integer

本文涉及到一些JVM原理和Java的字节码指令,推荐感兴趣的读者阅读一本有关JVM的经典书籍<深入Java虚拟机(第2版)>,将它与我在<.NET 4.0面向对象编程漫谈>中介绍的CLR原理与IL汇编指令作个对比,相信读者会有一定的启发.而仔细对比两个类似事物的异同,是很有效的学习方法之一. 今后我还将在个人博客上放出其他的文章,希望能帮助书的读者开拓视野,启发思考,大家一起探讨技术的奥秘. 本文所述之内容仅代表个人之理解,任何疏漏及错误请直接回贴指出. 1 奇特的程序输出 前段时

C#之int挑战Java之Integer

本文涉及到一些JVM原理和Java的字节码指令,推荐感兴趣的读者阅读一本有关JVM的经典书籍<深入Java虚拟机(第2版)>,将它与我在<.NET 4.0面向对象编程漫谈>中介绍的CLR原理与IL汇编指令作个对比,相信读者会有一定的启发.而仔细对比两个类似事物的异同,是很有效的学习方法之一. 今后我还将在个人博客上放出其他的文章,希望能帮助书的读者开拓视野,启发思考,大家一起探讨技术的奥秘. 本文所述之内容仅代表个人之理解,任何疏漏及错误请直接回贴指出. 1 奇特的程序输出 前段时

Java Integer类的缓存

首先看一段代码(使用JDK 5),如下: public class Hello { public static void main(String[] args) { int a = 1000, b = 1000; System.out.println(a == b); Integer c = 1000, d = 1000; System.out.println(c == d); Integer e = 100, f = 100; System.out.println(e == f); } } 输