<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-348  評論-598  文章-0  trackbacks-0
    題目: IOC 后臺機(jī)制學(xué)習(xí)
    給定:
    配置文件 config.txt, 文件內(nèi)容
    className = test.JavaBean1
    field = username
    value = ABC

    該文件中的三個值會隨時可能變化, 唯一不變的是 className 指定的都是一個 JavaBean(為了簡化, 我們假定里面已經(jīng)有一個 username 屬性, 例如:

    class JavaBeanxxxx {
    ?? ?private String username;

    ?? ?public String getUsername() {
    ?? ??? ?return username;
    ?? ?}

    ?? ?public void setUsername(String uname) {
    ?? ??? ?this.username = uname;
    ?? ?}
    }

    要求: 寫一段代碼, 讀取配置文件 config.txt, 然后實現(xiàn)把 className 指定的 JavaBean 類加載(注意這個類名是可以修改的, 可配置的), 然后生成一個實例,
    并把配置文件中field字段指定的值作為這個實例的屬性名(這里是username)所對應(yīng)的值設(shè)置為 ABC(字符串), 并且要讀出最后設(shè)置的值.

    初學(xué)Java,題目是老Bean出的,感謝老Bean對我的指導(dǎo)

    以下是答案:
    package?com.gcoresoft.ioc;

    import?java.io.*;
    import?java.lang.reflect.*;
    import?java.util.*;
    import?java.beans.*;

    public?class?IOCStudy?{
    ????
    ??

    ????private?Properties?prop=new?Properties();
    ??????//Load?the?properties?file
    ????
    public?void?loadPropFile(String?filename)
    ????
    {
    ????????
    try
    ????????
    {
    ????????????FileInputStream?fin
    =new?FileInputStream(filename);
    ????????????prop.load(fin);
    ????????????fin.close();
    ????????}
    catch(Exception?e){
    ????????????System.out.println(e.toString());
    ????????}

    ????}

    ????
    ????
    private?String?getValueByName(String?Name)
    ????
    {
    ????????
    return?prop.getProperty(Name);
    ????}

    ????
    ????
    public?static?void?main(String[]?args)
    ????
    {
    ????????IOCStudy?ioc
    =new?IOCStudy();
    ????????ioc.loadPropFile(
    "E:\\Work\\GetInIOC\\src\\com\\gcoresoft\\ioc\\Config.txt");
    ????????
    try
    ????????
    {
    ????????????Class?bean
    =Class.forName(ioc.getValueByName("className"));
    ????????????
    try?{
    ????????????????java.beans.BeanInfo?info
    =java.beans.Introspector.getBeanInfo(bean);
    ????????????????java.beans.PropertyDescriptor?pd[]
    =info.getPropertyDescriptors();
    ????????????????
    try?{
    ????????????????????Method?mSet
    =null,mRead=null;
    ????????????????????Object?obj
    =bean.newInstance();
    ????????????????????
    for(int?i=0;i<pd.length;i++)
    ????????????????????????
    if(pd[i].getName().equalsIgnoreCase(ioc.getValueByName("field")))
    ????????????????????????
    {
    ????????????????????????????mSet
    =pd[i].getWriteMethod();
    ????????????????????????????mRead
    =pd[i].getReadMethod();????????????????????????????
    ????????????????????????}

    ????????????????????
    try?{
    ????????????????????????mSet.invoke(obj,?ioc.getValueByName(
    "value"));
    ????????????????????????String?str
    =(String)mRead.invoke(obj,?null);
    ????????????????????????System.out.println(str);
    ????????????????????}
    ?catch?(IllegalArgumentException?e)?{
    ????????????????????????
    //?TODO?Auto-generated?catch?block
    ????????????????????????e.printStackTrace();
    ????????????????????}
    ?catch?(InvocationTargetException?e)?{
    ????????????????????????
    //?TODO?Auto-generated?catch?block
    ????????????????????????e.printStackTrace();
    ????????????????????}

    ????????????????}
    ?catch?(InstantiationException?e)?{
    ????????????????????
    //?TODO?Auto-generated?catch?block
    ????????????????????e.printStackTrace();
    ????????????????}
    ?catch?(IllegalAccessException?e)?{
    ????????????????????
    //?TODO?Auto-generated?catch?block
    ????????????????????e.printStackTrace();
    ????????????????}


    ????????????????
    ????????????}
    ?catch?(IntrospectionException?e)?{
    ????????????????
    //?TODO?Auto-generated?catch?block
    ????????????????e.printStackTrace();
    ????????????}

    ????????????
    ????????????
    ????????}
    catch(ClassNotFoundException?e){
    ????????????System.out.println(e.toString());
    ????????}

    ????????
    ????}

    ????
    }




    ---------------------------------------------------------
    專注移動開發(fā)

    Android, Windows Mobile, iPhone, J2ME, BlackBerry, Symbian
    posted on 2007-03-30 20:39 TiGERTiAN 閱讀(226) 評論(0)  編輯  收藏 所屬分類: Java
    主站蜘蛛池模板: 亚洲一二成人精品区| 日韩免费观看一区| 亚洲国产美女精品久久| 亚洲一区视频在线播放| 性做久久久久久久免费看| 日韩视频在线观看免费| ssswww日本免费网站片| 欧美亚洲国产SUV| 亚洲一级毛片免观看| 亚洲日本在线观看| 亚洲精品午夜无码专区| 一级毛片直播亚洲| 插B内射18免费视频| 91免费在线播放| 久久99精品视免费看| 成在线人免费无码高潮喷水| 污污视频网站免费观看| 亚洲精品亚洲人成在线| 亚洲av无码一区二区三区观看| 久久久久亚洲Av无码专| 亚洲av不卡一区二区三区 | 亚洲欧洲日产国码二区首页| 国产亚洲精品国看不卡| 亚洲av手机在线观看| 国产男女猛烈无遮挡免费视频| 毛片基地免费观看| 大地资源二在线观看免费高清 | 波多野结衣一区二区免费视频| 国产va免费精品观看精品| 性短视频在线观看免费不卡流畅| 57pao国产成视频免费播放| 四虎国产精品永久免费网址| 99久久免费国产特黄| 韩日电影在线播放免费版| 久久久久女教师免费一区| 国产精品美女久久久免费| 久久久久久久久久久免费精品| 9久久免费国产精品特黄| 中文字幕在线成人免费看| 国产一级一毛免费黄片| 男人j进入女人j内部免费网站|