通过反射对常量类赋值/取值

当常量类中常量很多,而我们有不确定对其中哪些常量赋值的情况下,比如一个接收es查询返回的常量类。我们可能就需要反射来对常量赋值/取值

    private final Class<?> stockClass = this.getClass();



    public void setValue(Object data, String tag) {

        Field field;

        try {

            field = getStockClass().getDeclaredField(tag);

            field.setAccessible(true);

            field.set(this, data);

        } catch (NoSuchFieldException | SecurityException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        } catch (IllegalArgumentException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        } catch (IllegalAccessException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        }

    }



    /**   

     * @Title: getValue   

     * @Description: 任意取值

     * @param: @param tag

     * @param: @return      

     * @return: Object      

     * @throws   

     */

    public Object getValue(String tag) {

        Field field;

        Object result = null;

        try {

            field = getStockClass().getDeclaredField(tag);

            field.setAccessible(true);

            result = field.get(this);

        } catch (NoSuchFieldException | SecurityException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        } catch (IllegalArgumentException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        } catch (IllegalAccessException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        }

        return result;

    }

更多:elasticsearch专栏

——————————————————————————————————

作者:桃花惜春风

转载请标明出处,原文地址:  

https://blog.csdn.net/xiaoyu_BD/article/details/81735784

如果感觉本文对您有帮助,请留下您的赞,您的支持是我坚持写作最大的动力,谢谢!

猜你喜欢

转载自blog.csdn.net/xiaoyu_BD/article/details/81735784
今日推荐