`

java 初始化Number包装类型

    博客分类:
  • Java
阅读更多

java 初始化Number包装类型

比如有的java bean成员变量类型为Integer或者Long,

如果没有设置初始值,默认为null

下面的方法用来设置默认值

 /***
     * 数值类型(比如Integer,Long)如果值为null,则自动设置为0
     * @param obj
     * @throws SecurityException
     * @throws NoSuchFieldException
     * @throws IllegalArgumentException
     * @throws IllegalAccessException
     */
    public static void convertNumberNull20(Object obj)
            throws SecurityException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException {
        if (obj == null) {
            return;
        }
        List<Field> fieldsList = getAllFieldList(obj.getClass());
        if (ValueWidget.isNullOrEmpty(fieldsList)) {
            return;
        }
        for (int i = 0; i < fieldsList.size(); i++) {
            Field f = fieldsList.get(i);
            Object vObj = getObjectValue(obj, f);
            String typeName = f.getType().getName();
            if (vObj == null) {
                if (typeName.equals("java.lang.Integer")
                        || typeName.equals("java.lang.Short")) {
                    f.set(obj, 0);
                } else if (typeName.equals("java.lang.String")) {
                    f.set(obj, "");
                } else if (typeName.equals("java.lang.Long")) {
                    f.set(obj, 0L);
                }

            }
        }
    }

 应用:

 @Override
    protected void encode(ChannelHandlerContext ctx, ProxyMessage msg, ByteBuf out) throws Exception {
        int bodyLength = TYPE_SIZE + SERIAL_NUMBER_SIZE + inet_Port_SIZE + URI_LENGTH_SIZE;
        byte[] uriBytes = null;
        if (msg.getUri() != null) {
            uriBytes = msg.getUri().getBytes(SystemHWUtil.CHARSET_UTF);
            bodyLength += uriBytes.length;
        }

        if (msg.getData() != null) {
            bodyLength += msg.getData().length;
        }

        // write the total packet length but without length field's length.
        out.writeInt(bodyLength);
        ReflectHWUtils.convertNumberNull20(msg);

        out.writeByte(msg.getType());
        out.writeLong(msg.getSerialNumber());
        /*if(null==msg.getInetPort()){
            msg.setInetPort(88888);
        }*/
        out.writeInt(msg.getInetPort());//added by huangweii @2017-01-21 20:43:38

        if (uriBytes != null) {
            out.writeByte((byte) uriBytes.length);
            out.writeBytes(uriBytes);
        } else {
            out.writeByte((byte) 0x00);
        }

        if (msg.getData() != null) {
            out.writeBytes(msg.getData());
        }
    }

 

 

0
0
分享到:
评论

相关推荐

    java数组初始化详解

    java 数组初始化 详解 doc

    Java初始化块Java初始化块.doc

    Java初始化块Java初始化块

    java 初始化与方法

    源代码以及word文件 博文链接:https://zsl131.iteye.com/blog/624175

    45.java数组动态初始化.zip

    45.java数组动态初始化.zip45.java数组动态初始化.zip45.java数组动态初始化.zip45.java数组动态初始化.zip45.java数组动态初始化.zip45.java数组动态初始化.zip45.java数组动态初始化.zip45.java数组动态初始化.zip...

    44.java数组静态初始化.zip

    44.java数组静态初始化.zip44.java数组静态初始化.zip44.java数组静态初始化.zip44.java数组静态初始化.zip44.java数组静态初始化.zip44.java数组静态初始化.zip44.java数组静态初始化.zip44.java数组静态初始化.zip...

    java代码的初始化顺序demo

    一个java代码初始化具体过程的的demo

    java程序初始化顺序

    介绍一下java程序初始化的顺序,这会对您以后的开发所有帮助

    6种方法初始化JAVA中的list集合

    主要介绍了6种方法初始化JAVA中的list集合,文中讲解非常详细,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下

    Java中对象的初始化

    《Java程序设计基础教程》按内容分成五篇:Java 语言入门篇、面向对象篇、数据流应用篇、Java GUI编程篇和高级应用篇,共有二十四讲组成。

    java初始化和清理

    Java 的初始化问题和其他高级语言类似。一个明显不一样的地方是体现在它的类加 载过程。传统的编程语言包括C++等,程序是作为启动过程的一部分立刻被加载,而Java 的 类加载只在需要使用程序代码时才会被加载(每个...

    java语法\Java数组声明、创建、初始化

    java语法\Java数组声明、创建、初始化

    Java初始化顺序1

    Java初始化顺序1

    java学习之神奇初始化

    如果有static,即静态成员定义,首先初始化static的变量,如,在类Cups中c3在c2前面,可是在输出的结果中,你可以发现,c2是在c3前执行的,这就是因为,所有的static都在第一时间被初始化。

    java中类的初始化顺序

    对java类初始化以及顺序,详解,由于转载仅供大家参考!

    52.java二维数组静态初始化.zip

    52.java二维数组静态初始化.zip52.java二维数组静态初始化.zip52.java二维数组静态初始化.zip52.java二维数组静态初始化.zip52.java二维数组静态初始化.zip52.java二维数组静态初始化.zip52.java二维数组静态初始化....

    51.java二维数组动态初始化.zip

    51.java二维数组动态初始化.zip51.java二维数组动态初始化.zip51.java二维数组动态初始化.zip51.java二维数组动态初始化.zip51.java二维数组动态初始化.zip51.java二维数组动态初始化.zip51.java二维数组动态初始化....

    java类变量初始化顺序

    详细讲解java类中静态变量,普通标量,对象、基本类型的初始化顺序。

    java中对象创建、初始化、引用

    介绍java对象的创建、初始化、和引用。并分析一下JAVA中对象创建和初始化过程中涉及的相关概念问题。

    Java初始化顺序

    作为一名程序员必须知道Java初始化顺序......

    深入Java初始化.pdf

    深入Java初始化.pdf

Global site tag (gtag.js) - Google Analytics