java,php,asp.net,linux,javascript,mysql,mssql,oracle,编程

java的常用函数4

转载请注明:http://www.pmjava.com/Article/ShowInfo.asp?ID=56546
 /**
     * 设置JSpinner的编辑属性
     *
@param spinner 目标JSpinner
     *
@param isAllowInvalid 是否允许输入非法值
     *
@param isEditable 是否允许编辑
    
*/
   
public static void setAllowsInvalid(JSpinner spinner, boolean isAllowInvalid, boolean isEditable)
    {
        JSpinner.NumberEditor editor
= new JSpinner.NumberEditor(spinner, "#");
        spinner.setEditor(editor);
        JFormattedTextField tf
= ((JSpinner.NumberEditor)spinner.getEditor()).getTextField();
        tf.setEditable(isEditable);
        DefaultFormatterFactory factory
= (DefaultFormatterFactory)tf.getFormatterFactory();
        NumberFormatter formatter
= (NumberFormatter)factory.getDefaultFormatter();
        formatter.setAllowsInvalid(isAllowInvalid);
    }
/**  
     * 根据指定方法的参数去构造一个新的对象的拷贝并将他返回
     *
@param obj 原始对象
     *
@return 新对象
     *
@throws NoSuchMethodException   
     *
@throws InvocationTargetException   
     *
@throws IllegalAccessException   
     *
@throws InstantiationException   
     *
@throws SecurityException   
     *
@throws IllegalArgumentException   
    
*/
    @SuppressWarnings(
"unchecked")
   
public static Object copy(Object obj) throws IllegalArgumentException, SecurityException, InstantiationException, IllegalAccessException,
                    InvocationTargetException, NoSuchMethodException
    {
       
//获得对象的类型   
        Class classType = obj.getClass();

       
//通过默认构造方法去创建一个新的对象,getConstructor的视其参数决定调用哪个构造方法   
        Object objectCopy = classType.getConstructor(new Class[]{}).newInstance(new Object[]{});

       
//获得对象的所有属性   
        Field[] fields = classType.getDeclaredFields();

       
for(int i = 0; i < fields.length; i++)
        {
           
//获取数组中对应的属性   
            Field field = fields[i];

            String fieldName
= field.getName();
            String stringLetter
= fieldName.substring(0, 1).toUpperCase();

           
//获得相应属性的getXXX和setXXX方法名称   
            String getName = "get" + stringLetter + fieldName.substring(1);
            String setName
= "set" + stringLetter + fieldName.substring(1);

           
//获取相应的方法   
            Method getMethod = classType.getMethod(getName, new Class[]{});
            Method setMethod
= classType.getMethod(setName, new Class[]{field.getType()});

           
//调用源对象的getXXX()方法   
            Object value = getMethod.invoke(obj, new Object[]{});

           
//调用拷贝对象的setXXX()方法   
            setMethod.invoke(objectCopy, new Object[]{value});
        }

       
return objectCopy;
    }

posted on 2009-06-10 12:32 rrong_m 阅读(127) 评论(0)  编辑  收藏 所属分类: javascript

<2024年5月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

导航

统计

常用链接

随笔档案

文章分类

文章档案

java编程

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜