我在自己的機(jī)器上測試 #1 情況都是 true
樓主寫的例子很好呈現(xiàn)了關(guān)于這4個類的幾種用法會得到什么樣的值。
樓主首先得搞清楚重寫的概念,然后再來看這幾個例子。
其實(shí)你定義的這些方法屬性和繼承沒有關(guān)系。
首先,這個下面例子,你定義了一個B,那么獲取的任何值都會是B的值。
B b = new B();
其次,下面這個例子,你定義了一個A,那么獲取的任何值都會是A的值,不管它的實(shí)例是不是B。因?yàn)槟阍贐里面沒有重寫任何A的東西。
A b1 = new B();
你想要BCDE能覆蓋父類A的值,那么你需要override他們。應(yīng)該像下面這些寫:
public class A
{
public virtual void NonStaticMethod()
{
Console.WriteLine("A");
}
}
public class B : A
{
public override void NonStaticMethod()
{
Console.WriteLine("B");
}
}0 荷葉,n 柱子這么想,假設(shè)河中有 n 個柱子:
這個過程似乎和漢諾塔很像,但是不是漢諾塔。
最后在這個基礎(chǔ)之上來考慮荷葉不為 0 的情況,由于荷葉上只能跳 1 只青蛙,相當(dāng)于只是將問題的規(guī)模放大了,所以最后答案是荷葉數(shù)量 + 1(直接跳到 R 柱的那個青蛙) 之后按河中柱子的個數(shù)依次乘以 2。
mybatis 的話這個可以實(shí)現(xiàn)的, 我之前是寫過一個類似的
表結(jié)構(gòu):
CREATE TABLE `admin_menu` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id',
`name` varchar(64) NOT NULL COMMENT '菜單名',
`parent_id` bigint(3) NOT NULL DEFAULT 0 COMMENT '父菜單的id, 如果是父菜單這個值為0',
`url` varchar(500) NOT NULL DEFAULT '' COMMENT '菜單的鏈接',
`icon` varchar(100) NOT NULL DEFAULT '' COMMENT '圖標(biāo)',
`menu_index` bigint(3) NOT NULL DEFAULT 0 COMMENT '展示的順序',
`create_time` datetime NOT NULL COMMENT '創(chuàng)建時間',
`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新時間',
PRIMARY KEY (`id`),
KEY `uq_id` (`id`),
KEY `uq_parent_id` (`parent_id`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8 COMMENT='管理后臺的菜單';
其中parentId 跟你的typeParent類似, 記錄上一級的id
AdminMenu (Model):
public class AdminMenu implements Serializable {
private static final long serialVersionUID = -6535315608269812875L;
private int id;
private String name;
private int parentId;
private String url;
private String icon;
private int menuIndex;
private Date createTime;
private Date updateTime;
private List<AdminMenu> subMenus;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getParentId() {
return parentId;
}
public void setParentId(int parentId) {
this.parentId = parentId;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getIcon() {
return icon;
}
public void setIcon(String icon) {
this.icon = icon;
}
public int getMenuIndex() {
return menuIndex;
}
public void setMenuIndex(int menuIndex) {
this.menuIndex = menuIndex;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public List<AdminMenu> getSubMenus() {
return subMenus;
}
public void setSubMenus(List<AdminMenu> subMenus) {
this.subMenus = subMenus;
}
@Override
public String toString() {
return JsonUtil.toJson(this);
}
}
Model的屬性跟表結(jié)構(gòu)一一對應(yīng), 最下面多了一個subMenu, 里面就是AdminMenu
下面是admin_menu.xml中的內(nèi)容
查詢SQL:
<select id="selectAllMenus" resultMap="adminMenuResult">
SELECT
id, name, parent_id, url, icon, menu_index, create_time, update_time
FROM
admin_menu
WHERE parent_id=0
ORDER BY menu_index
</select>
這里返回的就是adminMenuResult結(jié)果集:
<resultMap id="adminMenuResult" type="biz.menzil.admin.core.model.AdminMenu">
<id column="id" property="id"/>
<result column="name" property="name"/>
<result column="parent_id" property="parentId"/>
<result column="url" property="url"/>
<result column="icon" property="icon"/>
<result column="menu_index" property="menuIndex"/>
<result column="create_time" property="createTime"/>
<result column="update_time" property="updateTime"/>
<association property="subMenus" column="id" select="selectSubMenus"/>
</resultMap>
其中這一行是最重要的
<association property="subMenus" column="id" select="selectSubMenus"/>
這里用selectSubMenus來進(jìn)行了另一個查詢, 查詢的參數(shù)為id, 把查詢出來的結(jié)果放在Model中的subMenus屬性中.
selectSubMenus查詢SQL:
<select id="selectSubMenus" parameterType="long" resultMap="adminSubMenuResult">
select
id, name, parent_id, url, icon, menu_index, create_time, update_time
from admin_menu
where parent_id = #{id}
order by menu_index
</select>
這里就是用第一層的id來查詢有沒有子菜單. 這里的#{id}就是上面那個結(jié)果集的column參數(shù).
因?yàn)槲抑挥袃蓪硬藛? 所以這里用了一個新的結(jié)果集,跟上面的區(qū)別就是沒有subMenus字段.
adminSubMenuResult:
<resultMap id="adminSubMenuResult" type="biz.menzil.admin.core.model.AdminMenu">
<id column="id" property="id"/>
<result column="name" property="name"/>
<result column="parent_id" property="parentId"/>
<result column="url" property="url"/>
<result column="icon" property="icon"/>
<result column="menu_index" property="menuIndex"/>
<result column="create_time" property="createTime"/>
<result column="update_time" property="updateTime"/>
</resultMap>
如果你有三,四級的話你可以一個結(jié)果集. (第一層查詢的時候用id去查詢第二層, 第二層查詢的時候用第二層的id去查詢第三層...)
下面我貼一下整個的admin_menu.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="biz.menzil.admin.core.dao.AdminMenuDao">
<resultMap id="adminMenuResult" type="biz.menzil.admin.core.model.AdminMenu">
<id column="id" property="id"/>
<result column="name" property="name"/>
<result column="parent_id" property="parentId"/>
<result column="url" property="url"/>
<result column="icon" property="icon"/>
<result column="menu_index" property="menuIndex"/>
<result column="create_time" property="createTime"/>
<result column="update_time" property="updateTime"/>
<association property="subMenus" column="id" select="selectSubMenus"/>
</resultMap>
<resultMap id="adminSubMenuResult" type="biz.menzil.admin.core.model.AdminMenu">
<id column="id" property="id"/>
<result column="name" property="name"/>
<result column="parent_id" property="parentId"/>
<result column="url" property="url"/>
<result column="icon" property="icon"/>
<result column="menu_index" property="menuIndex"/>
<result column="create_time" property="createTime"/>
<result column="update_time" property="updateTime"/>
</resultMap>
<insert id="insertAdminMenu">
INSERT INTO admin_menu(name, parent_id, url, icon, menu_index, create_time)
VALUES (
#{menu.name},
#{menu.parentId},
#{menu.url},
#{menu.icon},
#{menu.menuIndex},
NOW()
)
</insert>
<select id="selectById" resultMap="adminMenuResult">
SELECT
id, name, parent_id, url, icon, menu_index, create_time, update_time
FROM
admin_menu
WHERE id = #{id}
</select>
<select id="selectAllMenus" resultMap="adminMenuResult">
SELECT
id, name, parent_id, url, icon, menu_index, create_time, update_time
FROM
admin_menu
WHERE parent_id=0
ORDER BY menu_index
</select>
<select id="selectSubMenus" parameterType="long" resultMap="adminSubMenuResult">
select
id, name, parent_id, url, icon, menu_index, create_time, update_time
from admin_menu
where parent_id = #{id}
order by menu_index
</select>
<delete id="deleteAdminMenu">
DELETE FROM
admin_menu
WHERE id=#{id}
</delete>
<update id="updateAdminMenu" >
UPDATE admin_menu
<set>
<if test="menu.name != null and menu.name != ''">
name=#{menu.name},
</if>
<if test="menu.parentId >= 0">
parent_id=#{menu.parentId},
</if>
<if test="menu.url != null and menu.url != ''">
url=#{menu.url},
</if>
<if test="menu.icon != null and menu.icon != ''">
icon=#{menu.icon},
</if>
<if test="menu.menuIndex > 0">
menu_index=#{menu.menuIndex},
</if>
</set>
WHERE id=#{menu.id}
</update>
</mapper>? super Fruit:可以是Fruit或者是Fruit的父類,但是父類并無法確定是什么類型,但可以確定Fruit的子類肯定是Fruit類型,所以只能add Fruit和它的子類
你存儲二叉樹的這個方法沒什么問題。你說從redis拿到了所有的子孫節(jié)點(diǎn)的id,然后去數(shù)據(jù)庫用in過濾當(dāng)天的新增節(jié)點(diǎn)。是這樣嗎? select * from tab where id in (ids) and date =sysdate; 那么就是如果子孫節(jié)點(diǎn)很多,這個ids就會非常大。我不知道你是不是想這個樣。但是你現(xiàn)在存在redis的id和score都可以做關(guān)系型數(shù)據(jù)庫的索引(id相當(dāng)于主鍵,distinct(score)最大是2),所以沒必要存在非得用redis。再針對業(yè)務(wù)中經(jīng)常出現(xiàn)的查詢條件做一下hash,比如這個日期就可以。如果每天新增的數(shù)據(jù)量很多的話甚至可以做一下分表。
Nginx的SSL配置了嗎?配置了的話,寫一段代碼
if ($scheme != 'https'){
rewrite ......
}
根據(jù)這個去Google吧
openLocation有用的話,簽名應(yīng)該沒問題,我感覺可能是分享鏈接的問題,你把title,link,imgUrl都寫死試試,link和圖片的url要和公眾號JS安全域名一致
給圖片加一個時間戳參數(shù)唄
應(yīng)該是墻的原因 我測試了一下我的環(huán)境可以
建議您試試
可以通過修改npm的配置文件讓npm到另外的pacakge mirror站點(diǎn)去找package,通過如下命令
$ npm config set registry https://registry.npm.taobao.org
$ npm config set registry http://r.cnpmjs.org
或者:npm config set registry http://registry.npmjs.eu
隨后再執(zhí)行
npm install
像我就是用的taobao鏡像
Bad file descriptor 是權(quán)限問題,你錯誤棧里提示的是 MkmRequestUtil.java:45
但是看不出你貼的代碼究竟錯誤是在 is_std 還是 is_error,不過應(yīng)該都是權(quán)限問題。
指定原因了,我寫了一個最小限制,所以沒有生成臨時文件
可以看下thrift的官網(wǎng)教程
http://thrift.apache.org/tuto...
同時可以配合例子適當(dāng)?shù)乜纯丛创a
估計(jì)是webpack的babel配置的問題
所謂的刪除,倒不如說是重新覆蓋。設(shè)置cookie的時候是可以主動加path=/,path=/a的,所以你只需要重新設(shè)置一遍,然后expires設(shè)置成-1即可
服務(wù)端怎么配置的
我測試下是正常的,并沒有觸發(fā)所有呀。
你離成功只差一步
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國制造2025”,實(shí)現(xiàn)中華民族偉大復(fù)興的升級產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。