最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Java Web:注解,自定義注解,判斷屬性上面是否貼上了col注解,PPT,視頻【詩書畫唱】

2021-01-03 01:04 作者:詩書畫唱  | 我要投稿

每次寫篇專欄就有時要花我大半天,給個三連吧!



本篇可Ctrl+F的關(guān)鍵內(nèi)容:講義,例子,PPT,視頻,判斷屬性上面是否貼上了col注解,進而控制SQL語句。通過反射技術(shù)提取類中的注解,判斷Jobs類是否貼上了Rich注解。

很多東西要自己學(xué)或想出或找到且記錄后,想出其作用,并且記錄,以后用——詩書畫唱

個人的理解:col注解等是自己命名的注解。

注解本質(zhì)是一個繼承了Annotation的特殊接口,其具體實現(xiàn)類是Java運行時生成的動態(tài)代理類。而我們通過反射獲取注解時,返回的是Java運行時生成的動態(tài)代理對象$Proxy1。通過代理對象調(diào)用自定義注解(接口)的方法,會最終調(diào)用AnnotationInvocationHandler的invoke方法。該方法會從memberValues這個Map中索引出對應(yīng)的值。而memberValues的來源是Java常量池。

個人對元注解的理解:元注解就是修飾注解的注解。有時注解類似類,可以繼承。

@SuppressWarnings("deprecation")? 表示不檢測過期的方法。


我認(rèn)為學(xué)編程時遇到不懂的英文單詞去百度等等,之后記錄可用的百度等的結(jié)果是很好的方法——詩書畫唱

deprecation

n.祈免;貶低;反對


deprecated[?depr?ke?t?d][?depr?ke?t?d]

v.對…表示極不贊成; 強烈反對




注解PPT START









注解PPT END


講義START


注解就是貼在代碼上的標(biāo)簽annotation

在java代碼中,到處都有注解。servlet的配置,WEBSOCKET,springmvc框架


注解可以理解為標(biāo)簽,標(biāo)簽是可以貼到代碼段上的:

類上面,屬性上,方法上


元注解:貼在標(biāo)簽上的標(biāo)簽,用來描述標(biāo)簽的標(biāo)簽,注解注解的注解

元數(shù)據(jù):描述數(shù)據(jù)的數(shù)據(jù)


鐵帽子王:爵位可以世襲罔替的


提取一個類中的注解,需要使用反射技術(shù)


使用注解來實現(xiàn)新增



講義END

例子START

個人對元注解的理解:元注解就是修飾注解的注解。注解也是類,可以繼承。

判斷屬性上面是否貼上了col注解,進而控制SQL語句START

import java.util.ArrayList;

import java.util.List;


import com.jy.anno.Rich;

import com.jy.bean.Person;

import com.jy.bean.User;

import com.jy.bean.Userinfo;

import com.jy.dao.BaseDao;



public class Test {

@SuppressWarnings(value = { "deprecation" })

? ? public static void main(String[] args) {

// Person p = new Person();

// p.zangai();

//

// try {

// Class cls = Class.forName("com.jy.bean.Mayun");

// //通過反射技術(shù)提取類中的注解

// //判斷Jobs類是否貼上了Rich注解

// boolean isRich = cls.isAnnotationPresent(Rich.class);

// //System.out.println(isRich);

// if(isRich) {//讀取注解上面的內(nèi)容

// //提取出Rich注解

// Rich label = (Rich) cls.getAnnotation(Rich.class);

// System.out.println("資產(chǎn)是:" + label.money());

// System.out.print("國籍是:" + label.country());

// }

// } catch (ClassNotFoundException e) {

// // TODO Auto-generated catch block

// e.printStackTrace();

// }


// BaseDao<Userinfo> bd = new BaseDao<Userinfo>();

// Userinfo u = new Userinfo();

// bd.add(u);


BaseDao<User> dao = new BaseDao<User>();

User user = new User();

dao.add(user);

}

}

package com.jy.bean;


import com.jy.anno.Col;


public class User {

? ? private Integer id;

? ? @Col

? ? private String act;

? ? @Col

? ? private String pwd;

? ? @Col

? ? private String birth;

? ? @Col

? ? private String sex;

? ? @Col

? ? private String hobbys;

? ??

? ? private Integer page;

? ? private Integer row;

public Integer getId() {

return id;

}

public void setId(Integer id) {

this.id = id;

}

public String getAct() {

return act;

}

public void setAct(String act) {

this.act = act;

}

public String getPwd() {

return pwd;

}

public void setPwd(String pwd) {

this.pwd = pwd;

}

public String getBirth() {

return birth;

}

public void setBirth(String birth) {

this.birth = birth;

}

public String getSex() {

return sex;

}

public void setSex(String sex) {

this.sex = sex;

}

public String getHobbys() {

return hobbys;

}

public void setHobbys(String hobbys) {

this.hobbys = hobbys;

}

public Integer getPage() {

return page;

}

public void setPage(Integer page) {

this.page = page;

}

public Integer getRow() {

return row;

}

public void setRow(Integer row) {

this.row = row;

}

}

package com.jy.dao;


import java.lang.reflect.Field;


import com.jy.anno.Col;


public class BaseDao<T> {

? ? public Integer add(T t){

? ? //獲取bean類中的屬性名

? ? Class cls = t.getClass();

? ? //insert into userinfo (act,pwd) values(?,?)

? ? //獲取表名

? ? String tableName = cls.getSimpleName();

? ? String sql = "insert into " + tableName + "(";

? ? String txt = "(";

? ? Field []fs = cls.getDeclaredFields();

? ? String dot = "";

? ? for(int i = 0;i < fs.length;i ++) {

? ? Field f = fs[i];

? ? String fname = f.getName();

? ? //判斷屬性上面是否貼上了col注解

? ? if(f.isAnnotationPresent(Col.class)){

? ? ? ? sql += dot;

? ? sql += fname;

? ?

? ? ? ? txt += dot;

? ? ? ? txt += "?";

? ? ? ? dot = ",";

? ? }? ?

? ? }

? ? sql += ") values";

? ? txt += ")";

? ? System.out.println(sql + txt);

? ? return 0;

? ? }

}






判斷屬性上面是否貼上了col注解END


判斷屬性上面是否貼上了col注解2START


package com.jy.bean;


import com.jy.anno.Col;


public class Userinfo {

? ? private Integer id;

? ? @Col

? ? private String act;

? ? @Col

? ? private String pwd;

? ??

? ? private Integer pageNum;

? ? private Integer pageSize;

public Integer getId() {

return id;

}

public void setId(Integer id) {

this.id = id;

}

public String getAct() {

return act;

}

public void setAct(String act) {

this.act = act;

}

public String getPwd() {

return pwd;

}

public void setPwd(String pwd) {

this.pwd = pwd;

}

}


package com.jy.bean;


import com.jy.anno.Col;


public class Userinfo {

? ? private Integer id;

? ? @Col

? ? private String act;

? ? @Col

? ? private String pwd;

? ??

? ? private Integer pageNum;

? ? private Integer pageSize;

public Integer getId() {

return id;

}

public void setId(Integer id) {

this.id = id;

}

public String getAct() {

return act;

}

public void setAct(String act) {

this.act = act;

}

public String getPwd() {

return pwd;

}

public void setPwd(String pwd) {

this.pwd = pwd;

}

}




判斷屬性上面是否貼上了col注解2END


通過反射技術(shù)提取類中的注解,判斷Jobs類是否貼上了Rich注解START



import java.util.ArrayList;

import java.util.List;


import com.jy.anno.Rich;

import com.jy.bean.Person;

import com.jy.bean.User;

import com.jy.bean.Userinfo;

import com.jy.dao.BaseDao;



public class Test {

@SuppressWarnings(value = { "deprecation" })

? ? public static void main(String[] args) {

Person p = new Person();

p.zangai();


try {

Class cls = Class.forName("com.jy.bean.Mayun");

//通過反射技術(shù)提取類中的注解

//判斷Jobs類是否貼上了Rich注解

boolean isRich = cls.isAnnotationPresent(Rich.class);

//System.out.println(isRich);

if(isRich) {//讀取注解上面的內(nèi)容

//提取出Rich注解

Rich label = (Rich) cls.getAnnotation(Rich.class);

System.out.println("資產(chǎn)是:" + label.money());

System.out.print("國籍是:" + label.country());

}

} catch (ClassNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}


/* BaseDao<Userinfo> bd = new BaseDao<Userinfo>();

Userinfo u = new Userinfo();

bd.add(u);*/


/* BaseDao<User> dao = new BaseDao<User>();

User user = new User();

dao.add(user);*/

}

}

package com.jy.anno;


import java.lang.annotation.Inherited;

import java.lang.annotation.Retention;

import java.lang.annotation.RetentionPolicy;


//大富豪標(biāo)簽

//大富豪注解是可以繼承的

@Inherited

//將注解保存到代碼運行的時候

@Retention(RetentionPolicy.RUNTIME)

public @interface Rich {

? ? double money() default 40000000000.0;//大富豪的身價

? ? String country() default "中國";//大富豪的國籍

}

package com.jy.bean;


public class Person {

//已經(jīng)棄用的方法

@Deprecated

? ? public void zangai(){

? ? System.out.println("為你放棄整個世界");

? ? }

}


package com.jy.anno;


import java.lang.annotation.Inherited;

import java.lang.annotation.Retention;

import java.lang.annotation.RetentionPolicy;


//大富豪標(biāo)簽

//大富豪注解是可以繼承的

@Inherited

//將注解保存到代碼運行的時候

@Retention(RetentionPolicy.RUNTIME)

public @interface Rich {

? ? double money() default 40000000000.0;//大富豪的身價

? ? String country() default "中國";//大富豪的國籍

}




通過反射技術(shù)提取類中的注解,判斷Jobs類是否貼上了Rich注解END

package com.jy.anno;


import java.lang.annotation.ElementType;

import java.lang.annotation.Retention;

import java.lang.annotation.RetentionPolicy;

import java.lang.annotation.Target;


@Target(ElementType.FIELD)//這個標(biāo)簽只能貼在屬性上面

@Retention(RetentionPolicy.RUNTIME)//標(biāo)簽存活到運行時

public @interface Col {


}

package com.jy.anno;


import java.lang.annotation.ElementType;

import java.lang.annotation.Retention;

import java.lang.annotation.RetentionPolicy;

import java.lang.annotation.Target;


//段子手標(biāo)簽

@Retention(RetentionPolicy.RUNTIME)

@Target(ElementType.TYPE)

public @interface Duanzishou {


}

package com.jy.anno;


public @interface Good {


}


package com.jy.bean;


import com.jy.anno.Rich;


@Rich(money=27000000000.0,country="美國")

public class Jobs {


}



package com.jy.bean;


import com.jy.anno.Rich;


@Rich

public class Mayun {


}


package com.jy.bean;


import com.jy.anno.Duanzishou;


//QQ好友

//1

@Duanzishou

public class QQFriend {

//4

public QQFriend(){


}

//2

? ? private String name;

? ? //3

? ? public void say(String act){

? ? System.out.println("Hello world");

? ? }

}

package com.jy.bean;

//我是富二代,可以繼承@Rich注解

public class Son extends Jobs {


}




例子END

視頻START


視頻END



Java Web:注解,自定義注解,判斷屬性上面是否貼上了col注解,PPT,視頻【詩書畫唱】的評論 (共 條)

分享到微博請遵守國家法律
宁南县| 通河县| 余江县| 资阳市| 潍坊市| 法库县| 牙克石市| 江口县| 理塘县| 鹤庆县| 奉化市| 宜川县| 湾仔区| 道真| 瑞丽市| 韩城市| 富民县| 松潘县| 长顺县| 德阳市| 广宁县| 巫溪县| 边坝县| 铜梁县| 枣庄市| 桂平市| 通江县| 定西市| 茌平县| 武平县| 石首市| 红安县| 芦溪县| 海盐县| 郎溪县| 铜山县| 邢台市| 温泉县| 兴文县| 密山市| 伊吾县|