### Question:
TreeMenuUIRender implements TreeRender<TreeNodeGeneric<T>> { public String render(TreeNodeGeneric<T> treeNode) { if (null == treeNode || !treeNode.hasChildrens()) return null; HtmlBuilder html = new HtmlBuilder(); List<TreeNodeGeneric<T>> childrenTreeNodes = treeNode.getChildrens(); for (TreeNodeGeneric<T> curTreeNode : childrenTreeNodes) { render(html, curTreeNode); } return html.toString(); } TreeMenuUIRender();  TreeMenuUIRender(String folderCssClass, String leafCssClass); String render(TreeNodeGeneric<T> treeNode);  }### Answer:
@Test public void testRender() { int loop = 100000; long oneStartTime = System.currentTimeMillis(); String renderString = ""; for (int i = 0; i < loop; i++) { TreeViewItem viewItem1 = new TreeViewItemDefault(false, false, "aa", "aa", "a1", "", "a11", "asd"); TreeViewItem viewItem2 = new TreeViewItemDefault(false, false, "aa", "aa", "a2", "", "a11", "asd"); TreeViewItem viewItem3 = new TreeViewItemDefault(false, false, "aa", "aa", "a3", "a1", "a11", "asd"); TreeViewItem viewItem4 = new TreeViewItemDefault(false, false, "aa", "aa", "a4", "a1", "a11", "asd"); List<TreeViewItem> list = new ArrayList<TreeViewItem>(); list.add(viewItem1); list.add(viewItem2); list.add(viewItem3); list.add(viewItem4); renderString = TreeMenuRenderUtil.contructTreeMenuUI(list, "folder", "file"); } long oneEndTime = System.currentTimeMillis(); System.out.println(renderString); System.out.println("one elapse:" + (oneEndTime - oneStartTime)); }