示例如下:String str="a";
for(……)
{
  My str = new My();  //这一条代码是有错误的
 …………
  str = str+"a";
}上面注释部分,表明我str是变化的.按上面的要求,要求达到以下目的:每次产生的对象名都不一样;按上面的例子,产生的对象应该是:a,aa,aaa,aaaa……;这些对象都是通过My实例化出来的.有什么办法解决吗?或者换种方式也可以.

解决方案 »

  1.   

    我的站也不错哟,有很多值得你看的哟,
    来踩一下呀, 
    http://bbs.oneedu.cn/bbs
      

  2.   

    Class c = Class.forName(str);
    Object o = c.newInstance();
    这样得到的o是一个str实例,但是你仍需要知道它的真正类型,来转型使用
      

  3.   

    谢谢楼上的朋友,可是你得到的是str的实例啊.我要得到的是多个对象名,并且这些对象名都属于My类的实例。关键是这些对象名,如何动态地产生多个属于同一个类的对象。
      

  4.   

    产生的对象名应该是:a,aa,aaa,aaaa……;这些对象都是通过My实例化出来的.
    我就是想如何才能产生这些对象,如:a,aa,aaa,aaaa……。这些对象名的命名,是按一定规则产生的。
      

  5.   

    楼主想得到
    My a = new My();
    My aa = new My();
    My aaa = new My();
    My aaaa = new My();
    My aaaaa = new My();
    My aaaaaa = new My();
    ……etc.
    但是数量是不定的。
    我理解,但是不会。
    关键怎么才能把一个String str的值放到My _____ = new My();中
    用str的值做为对象名。
    Java中有相关的方法?
      

  6.   

    顶一下贴子。。我的意思就是:fredonline(天天挨踢)  的意思,呵呵,不知有什么办法
    My a = new My();
    My aa = new My();
    My aaa = new My();
    My aaaa = new My();
    My aaaaa = new My();
    My aaaaaa = new My();
    ……etc.
    但是数量是不定的。
    我理解,但是不会。
    关键怎么才能把一个String str的值放到My _____ = new My();中
    用str的值做为对象名。
      

  7.   

    主要是解决对象引用值的覆盖,也许可以通过Clone或接口类来实现。我对java设计模式不太熟悉,所以一时之间找不出办法,所有才出现上面的要求。各位有好的建议,麻烦详细一下,在下感谢不尽
      

  8.   

    谢谢楼上的朋友,我表达和分析也觉得有问题,但找不到合适的。。望指教我要在SWT窗口应用程序中,实现像IE一样菜单,菜单项显示出来正常。现在要得到当前选中菜单的名称,可是经测试发现,得到的同级菜单的名称全部被覆盖了,由此产生了上面一幕。Hashtable hashtable1 = new Hashtable();
    ArrayList menuList1 = menudb.getAllMenuItems(collectionGuid,fguid);
    Iterator menuIter1 = menuList1.iterator();
    //第一级菜单输出
    while(menuIter1.hasNext())
    {
      hashtable1 = (Hashtable)menuIter1.next();
      Enumeration hashenus = hashtable1.keys();
      String guids = (String)hashenus.nextElement();
      //得到菜单元素名称
      String menuName = (String)hashtable1.get(guids);
      menuItem_1 = new MenuItem(menu, SWT.CASCADE);
      menuItem_1.setText(menuName);
      if(menudb.exitsNode(guids))
      {
     …………………………
      }
      else
      {
     //如果该节点是叶子结点,则具有点击事件
     if(menudb.isNoteEnd(guids))
     {
       menuItem_1.addSelectionListener(new SelectionAdapter() 
       {
     public void widgetSelected(SelectionEvent e) 
     {
     //问题在这里,输出检测出,同级下的菜单名被最后一个菜单所覆盖,很郁闷
     System.out.println(menuItem_1.getText()); 
     }
     });
    }
       else
    {
      //无任何事件
      ……………………
    }
      }
    }
      

  9.   

    程序的问题  
    根本不是你想的那回事  这圈子绕的不熟悉SWT菜单结构
     
      

  10.   

    你是要得到当前选中菜单的名称吗?
    MenuElement[] path = MenuSelectionManager.defaultManager()
    .getSelectedPath(); StringBuffer sb = new StringBuffer();
    // Retrieve the labels of all the menu elements in the path
    for (int i = 0; i < path.length; i++) {
    Component c = path[i].getComponent();
    if (c instanceof JMenuItem) {
    JMenuItem mi = (JMenuItem) c;
    String label = mi.getText();
    sb.append(label + "|");
    }
    }
    sb.deleteCharAt(sb.length() - 1);
    这个sb.toString()就是当前菜单项的名称,结构是比如 File|Exit|...|...
    不知道是不是你想要的。