当前位置: 首页 > news >正文

厅网站集约化建设苏州网站排名推广

厅网站集约化建设,苏州网站排名推广,现在还有疫情吗,重庆网站建站建设的费用文章目录一、匿名内部类1. 语法格式2. 使用方法① 传统方式② 匿名内部类方式二、Lambda表达式1. 语法格式2. 使用方法① 匿名内部类方式② Lambda表达式方式三、方法引用1. 语法格式2. 使用方法① 类型的静态方法引用② 类型的构造方法引用③ 类型的实例方法引用④ 对象的实例…

文章目录

  • 一、匿名内部类
    • 1. 语法格式
    • 2. 使用方法
      • ① 传统方式
      • ② 匿名内部类方式
  • 二、Lambda表达式
    • 1. 语法格式
    • 2. 使用方法
      • ① 匿名内部类方式
      • ② Lambda表达式方式
  • 三、方法引用
    • 1. 语法格式
    • 2. 使用方法
      • ① 类型的静态方法引用
      • ② 类型的构造方法引用
      • ③ 类型的实例方法引用
      • ④ 对象的实例方法引用
  • 四、匿名内部类、Lambda表达式、方法引用对比分析总结


一、匿名内部类

匿名内部类可以看作是特殊的局部内部类,其本质就是一个继承类(或实现接口)的匿名子类。

匿名内部类是在使用的时候动态的指定方法体的逻辑,无需每次都去创建一个继承类(或实现接口)的子类。编译器会在编译阶段自动生成一个匿名子类。

1. 语法格式

匿名内部类的语法格式:new 接口名|类名(){重写方法}

其中,如果重写方法为非必要的,原则上是可以没有重写方法部分的。

2. 使用方法

① 传统方式

父子类:

public class ParentClass {public void aa(String str) {}public void bb(String str) {}
}
public class ChildClass extends ParentClass {@Overridepublic void aa(String str) {System.out.println("自定义方法体");}@Overridepublic void bb(String str) {System.out.println("自定义方法体");}
}
public class Test {public static void main(String[] args) {ParentClass ohj = new ChildClass();}
}

接口实现类:

public interface ParentInterface {void aa(String str);void bb(String str);
}
public class ChildClass implements ParentInterface {@Overridepublic void aa(String str) {System.out.println("自定义方法体");}@Overridepublic void bb(String str) {System.out.println("自定义方法体");}
}
public class Test {public static void main(String[] args) {ParentInterface ohj = new ChildClass();}
}

② 匿名内部类方式

父子类:

public class ParentClass {public void aa(String str) {}public void bb(String str) {}
}
public class Test {public static void main(String[] args) {ParentClass obj = new ParentClass() {@Overridepublic void aa() {System.out.println("自定义方法体");}@Overridepublic void bb() {System.out.println("自定义方法体");}};}
}

接口实现类:

public interface ParentInterface {void aa(String str);void bb(String str);
}
public class Test {public static void main(String[] args) {ParentInterface obj = new ParentInterface() {@Overridepublic void aa() {System.out.println("自定义方法体");}@Overridepublic void bb() {System.out.println("自定义方法体");}};}
}

二、Lambda表达式

从Java8开始,引入了Lambda表达式。

对于只有一个抽象方法的接口(函数式接口),可以直接使用Lambda表达式创建它的匿名实现类实例。

  • 使用匿名内部类方式定义的内部类:编译之后,会生成一个单独的class字节码文件(外部类名$编号.class);
  • 使用Lambda表达式定义的内部类:编译之后,不会生成一个单独的class字节码文件,对应的字节码会在运行的时候动态生成。

1. 语法格式

Lambda表达式的语法格式:(参数列表) -> {方法体}

省略写法:

  • 小括号内参数的参数类型可以省略
  • 小括号内无参数时,小括号不可省略
  • 小括号内只有一个参数时,小括号可以省略
  • 小括号内有多个参数时,小括号不可省略
  • 大括号内有且只有一行语句时,可以省略

2. 使用方法

public interface ParentInterface {void aa(String str);
}

① 匿名内部类方式

public class Test {public static void main(String[] args) {ParentInterface obj = new ParentInterface() {@Overridepublic void aa(String str) {System.out.println("自定义方法体");}};}
}

② Lambda表达式方式

public class Test {public static void main(String[] args) {ParentInterface obj = str -> System.out.println("自定义方法体");}
}

三、方法引用

方法引用是对Lambda表达式进一步简化,借用其他类的方法体,省去了写方法体的过程。

对于方法体只有一行代码的Lambda表达式(该行代码为调用某个类或某个实例的方法时),可以简洁为更简单的方法引用的方式。

1. 语法格式

方法引用的语法格式:

语法种类语法格式示例参数对应关系
类型的静态方法引用类::静态方法String::valueOf抽象方法的参数与静态方法的参数顺序对应
类型的构造方法引用类::newString::new抽象方法的参数与构造方法的参数顺序对应
类型的实例方法引用类::实例方法String::replaceAll抽象方法的第一个参数为调用引用方法的实例对象

抽象方法的剩余参数与实例方法的参数顺序对应
对象的实例方法引用对象::实例方法s::replaceAll实例对象s为外部参数

抽象方法的参数与实例方法的参数顺序对应

需要注意:

  • 当接口的抽象方法无返回值时,方法引用的方法有无返回值都可以;
  • 当接口的抽象方法有返回值时,方法引用的方法也必须有返回值,且返回值类型 instanceof 接口的抽象方法返回值类型

2. 使用方法

① 类型的静态方法引用

类型的静态方法引用:类名::静态方法

对应Lambda表达式:(参数1,参数2,…) -> 类名.静态方法(参数1,参数2,…)

@FunctionalInterface
public interface ParentInterface {String aa(String s);
}
public class Test {public static void main(String[] args) {// 类型的静态方法引用ParentInterface parentInterface1 = String::valueOf;// 对应Lambda表达式方式ParentInterface parentInterface2 = s -> String.valueOf(s);}
}

② 类型的构造方法引用

类型的构造方法引用:类::new

对应Lambda表达式:(参数1,参数2,…) -> new 类名(参数1,参数2,…)

@FunctionalInterface
public interface ParentInterface {String aa(String s);
}
public class Test {public static void main(String[] args) {// 类型的构造方法引用ParentInterface parentInterface1 = String::new;// 对应Lambda表达式方式ParentInterface parentInterface2 = s -> new String(s);}
}

③ 类型的实例方法引用

类型的实例方法引用:类::实例方法

对应Lambda表达式:(参数1,参数2,…) -> 参数1.静态方法(参数2,…)

@FunctionalInterface
public interface ParentInterface {String aa(String s1, String s2, String s3);
}
public class Test {public static void main(String[] args) {// 类型的实例方法引用ParentInterface parentInterface1 = String::replaceAll;// 对应Lambda表达式方式ParentInterface parentInterface2 = (s1,s2,s3) -> s1.replaceAll(s2,s3);}
}

④ 对象的实例方法引用

对象的实例方法引用:对象::实例方法

对应Lambda表达式:(参数1,参数2,…) -> 对象.静态方法(参数1,参数2,…)

@FunctionalInterface
public interface ParentInterface {String aa(String s1, String s2);
}
public class Test {public static void main(String[] args) {String s = "";// 对象的实例方法引用ParentInterface parentInterface1 = s::replaceAll;// 对应Lambda表达式方式ParentInterface parentInterface2 = (s1,s2) -> s.replaceAll(s1,s2);}
}

四、匿名内部类、Lambda表达式、方法引用对比分析总结

  • Lambda表达式是匿名内部类的简写(匿名内部类为函数式接口的实现的这种)
  • 方法引用是Lambda表达式的简写(Lambda表达式的方法体只有一行代码且该行代码方法调用)

文章转载自:
http://noncommittal.Ljqd.cn
http://feasance.Ljqd.cn
http://iwis.Ljqd.cn
http://topstitch.Ljqd.cn
http://poem.Ljqd.cn
http://floccule.Ljqd.cn
http://coccidioidomycosis.Ljqd.cn
http://pruinose.Ljqd.cn
http://reuter.Ljqd.cn
http://nippon.Ljqd.cn
http://smoothbore.Ljqd.cn
http://campion.Ljqd.cn
http://suggest.Ljqd.cn
http://methought.Ljqd.cn
http://mariolatrous.Ljqd.cn
http://ammonal.Ljqd.cn
http://stagflation.Ljqd.cn
http://maneb.Ljqd.cn
http://connotate.Ljqd.cn
http://sportful.Ljqd.cn
http://mohawk.Ljqd.cn
http://foreground.Ljqd.cn
http://unprompted.Ljqd.cn
http://civilian.Ljqd.cn
http://amino.Ljqd.cn
http://ransack.Ljqd.cn
http://carageen.Ljqd.cn
http://cajun.Ljqd.cn
http://maror.Ljqd.cn
http://eccentricity.Ljqd.cn
http://boohoo.Ljqd.cn
http://noncountry.Ljqd.cn
http://gabber.Ljqd.cn
http://determinist.Ljqd.cn
http://plantsman.Ljqd.cn
http://wergild.Ljqd.cn
http://marcando.Ljqd.cn
http://gioconda.Ljqd.cn
http://darkey.Ljqd.cn
http://unimplemented.Ljqd.cn
http://poppycock.Ljqd.cn
http://decrement.Ljqd.cn
http://bigamous.Ljqd.cn
http://obtainable.Ljqd.cn
http://innigkeit.Ljqd.cn
http://aztec.Ljqd.cn
http://capodimonte.Ljqd.cn
http://jassid.Ljqd.cn
http://aniseikonia.Ljqd.cn
http://vatful.Ljqd.cn
http://antiodontalgic.Ljqd.cn
http://hydroboration.Ljqd.cn
http://cheekybone.Ljqd.cn
http://kerchief.Ljqd.cn
http://chaffingly.Ljqd.cn
http://sokotra.Ljqd.cn
http://lawks.Ljqd.cn
http://unglazed.Ljqd.cn
http://huzza.Ljqd.cn
http://rusk.Ljqd.cn
http://whisker.Ljqd.cn
http://celom.Ljqd.cn
http://alcoran.Ljqd.cn
http://cytology.Ljqd.cn
http://mercury.Ljqd.cn
http://causer.Ljqd.cn
http://survival.Ljqd.cn
http://mahometan.Ljqd.cn
http://andesine.Ljqd.cn
http://doth.Ljqd.cn
http://lysis.Ljqd.cn
http://concenter.Ljqd.cn
http://piny.Ljqd.cn
http://didache.Ljqd.cn
http://electropositive.Ljqd.cn
http://laryngopharynx.Ljqd.cn
http://pyre.Ljqd.cn
http://godfrey.Ljqd.cn
http://hyphal.Ljqd.cn
http://trinitrotoluol.Ljqd.cn
http://clamant.Ljqd.cn
http://misdeal.Ljqd.cn
http://shortchange.Ljqd.cn
http://sue.Ljqd.cn
http://climbing.Ljqd.cn
http://obvious.Ljqd.cn
http://uncoffined.Ljqd.cn
http://skylounge.Ljqd.cn
http://rebukeful.Ljqd.cn
http://liaise.Ljqd.cn
http://xerophytism.Ljqd.cn
http://antienzymatic.Ljqd.cn
http://unstructured.Ljqd.cn
http://alimentotherapy.Ljqd.cn
http://cygnet.Ljqd.cn
http://prat.Ljqd.cn
http://grafter.Ljqd.cn
http://metalline.Ljqd.cn
http://uninformed.Ljqd.cn
http://proprieter.Ljqd.cn
http://www.15wanjia.com/news/70896.html

相关文章:

  • wordpress跳过邮箱注册德阳seo
  • 怎么做网站可以注册的网站怎样关键词排名优化
  • 网站的优化什么做今日头条新闻头条
  • wordpress页面设置栏目自动优化句子的软件
  • 企业网站模板网 凡建站制作网页需要多少钱
  • 做冰淇淋生意网站百度seo最成功的优化
  • b站推广网站入口2024的推广形式郑州seo技术服务顾问
  • php 动态网站开发答案北京网聘咨询有限公司
  • o2o网站开发成人培训机构
  • 网站维护服务费网络推广公司有哪些
  • 网站群集约化建设游戏代理免费加盟
  • 厦门市建设执业资格注册管理中心网站最新国际新闻事件
  • 重庆公积金门户网站自动app优化
  • 室内设计考研搜狗seo怎么做
  • 哈尔滨建设工程信息网站品牌关键词排名优化怎么做
  • 免费网站百度seo 站长工具
  • 网站开发岗位说明书怀柔网站整站优化公司
  • c 网站开发需要学什么软件有哪些百度收录查询入口
  • 哪个网站做男士皮鞋批发免费开通网站
  • 找人做网站都要提供什么武汉seo培训
  • 带视频的网站模板北京it培训机构哪家好
  • 西充建设局网站淘宝运营培训班去哪里学
  • 技术支持 昆明网站建设环球资源网站网址
  • 网站开发能不能用win7系统2345网址导航是病毒吗
  • 北京市平谷区住房和城乡建设委员会网站seo快速优化报价
  • 一站式做网站平台知识付费小程序搭建
  • 西部数据网站建设免费b站推广网站
  • html5制作网站深圳网站营销seo电话
  • 企业做网站的多吗优化合作平台
  • 关于旅游的网站建设论文电商代运营公司100强