??JEP????Java???????
?????InfoQ ???????[ 2017/2/9 9:48:23 ] ??????????????????? Java
	?????μ?JEP Candidate ????????Java?и??????????????????μ?JEP Candidate???????Java 10????????????????????????????????????????????????????????????????????????????????????·????????????????????????????????????
	????????????????????????????????????????????Java???????????????????????????????к??????????????????????????????????JEP????????????????????????????????????????????Java??????????????????????????·????????????
	????????Э??????
	???????μ?????????????????????ó???
	????public class Product {
	????/* ... */
	????}
	????public class FrozenProduct extends Product {
	????/* ... */
	????}
	????????и?????scan(Product product)???????????????FrozenProduct???????ù????????????????????????????????????????????а??????????????????????????????μ???????????
	????private void addAllProducts(List<Product> products) {
	????/* Check product stock */
	????shoppingCart.addAll(products);
	????}
	????private void freezerSection() {
	????List<FrozenProduct> frozenProducts = /* select frozen products */;
	????addAllProducts(frozenProducts); // ERROR: List<Product> expected
	????//        List<FrozenProduct> found
	????}
	????????Java????÷??????????й???????????????????????????????????衣???仰???????÷????????????????????????????????????????????
	?????????????????????У???????????addAllProducts???????????List of Product??????????????????????????????????????????????κ??????????????????????Э??????Java?п?????extends?????
	????private void addAllProducts(List<? extends Product> products) {
	????/* Check product stock */
	????shoppingCart.addAll(products);
	????}
	????private void freezerSection() {
	????List<FrozenProduct> frozenProducts =  /* select frozen products */;
	????addAllProducts(frozenProducts); // works with no problem
	????}
	????????Щ?????У?????????????????????????????Щ?????????У??????????????????????????????????????μ??????
	????private boolean askQuestion(Predicate<String> p) {
	????return p.test("hello");
	????}
	????private void applyPredicate() {
	????Predicate<Object> evenLength = o -> o.toString().length() % 2 == 0;
	????askQuestion(evenLength); // ERROR: Predicate<String> expected
	????//        Predicate<Object> found
	????}
	??????????????£??????????????string “hello”??lambda o -> o.toString().length() % 2 == 0?в?????????????????????????????????????askQuestion???????Predicate of String??????????????????????????μ?????????????????Java?п?????super?????
	????private boolean askQuestion(Predicate<? super String> p) {
	????return p.test("hello");
	????}
	????private void applyPredicate() {
	????Predicate<Object> evenLength = o -> o.toString().length() % 2 == 0;
	????askQuestion(evenLength); // works with no problem
	????}
	????????????????????????????????????????????????????????????????岻?????????????????????????????????addAllProducts??Э???????????????????????????????????????????????????????????????????????????????????????????????????????????????????μ????????????
	????????????????????
	?????????????????????????????????????????????? Predicate<String> ???????У???????????????????????? Predicate<? extends String> ??????????????????????????????????У????????????£???????????????????壬???????????? JEP 300 ???????????????????????????????????????????????????????????????????????????????????????????? Predicate<contravariant T> ????д??? Predicate<T> ??????????κ?????????д Predicate<String> ?????????????? Predicate<? super String> ??
	????????1????????δ??????????????????Щ?????????μ???????????? Function<contravariant T?? covariant R> ????????????????????????Scala?е???? (Function<-T?? +R>) ??????C#?е??????? (Function<in T?? out R>) ?????????????????????????Щ????????????????????????????????????????????д?????????????????????????????????????
	????????????????????JEP 300???????μ????????????????Java???п?????κ?????????????JEP 300????????????????????????????????????汾??JEP????С?
??????
					
					???·???
App??С????H5?????????????????Щ??
2024/9/11 15:34:34?????????????????????????
2024/9/10 11:13:49P-One ???????????????????????????????????????
2024/9/10 10:14:12???????????????????????????
2024/9/9 18:04:26??????????????????
2023/3/23 14:23:39???д?ò??????????
2023/3/22 16:17:39????????????????????Щ??
2022/6/14 16:14:27??????????????????????????
2021/10/18 15:37:44
					
			
								
								
								
								
								
								
								
								
								
								
				
sales@spasvo.com