| /* | |
| * Copyright 2000-2014 JetBrains s.r.o. | |
| * | |
| * Licensed under the Apache License, Version 2.0 (the "License"); | |
| * you may not use this file except in compliance with the License. | |
| * You may obtain a copy of the License at | |
| * | |
| * http://www.apache.org/licenses/LICENSE-2.0 | |
| * | |
| * Unless required by applicable law or agreed to in writing, software | |
| * distributed under the License is distributed on an "AS IS" BASIS, | |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| * See the License for the specific language governing permissions and | |
| * limitations under the License. | |
| */ | |
| package pkg; | |
| import java.lang.annotation.Annotation; | |
| import java.util.*; | |
| import java.util.Arrays; | |
| import java.util.function.IntBinaryOperator; | |
| import java.util.function.Supplier; | |
| public class TestClassLambda { | |
| public int field = 0; | |
| public void testLambda() { | |
| List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7); | |
| int b = (int)Math.random(); | |
| list.forEach(n -> { | |
| int a = 2 * n; | |
| System.out.println(a + b + field); | |
| }); | |
| } | |
| public void testLambda1() { | |
| int a = (int)Math.random(); | |
| Runnable r1 = () -> { System.out.println("hello1" + a); }; | |
| Runnable r2 = () -> { System.out.println("hello2" + a); }; | |
| } | |
| public void testLambda2() { | |
| reduce((left, right) -> Math.max(left, right)); | |
| } | |
| public void testLambda3() { // IDEA-127301 | |
| reduce(Math::max); | |
| } | |
| public void testLambda4() { | |
| reduce(TestClassLambda::localMax); | |
| } | |
| public void testLambda5() { | |
| String x = "abcd"; | |
| function(x::toString); | |
| } | |
| public void testLambda6() { | |
| List<String> list = new ArrayList<String>(); | |
| int bottom = list.size() * 2; | |
| int top = list.size() * 5; | |
| list.removeIf(s -> (bottom >= s.length() && s.length() <= top)); | |
| } | |
| public static void testLambda7(Annotation[] annotations) { | |
| Arrays.stream(annotations).map(Annotation::annotationType); | |
| } | |
| public static OptionalInt reduce(IntBinaryOperator op) { | |
| return null; | |
| } | |
| public static String function(Supplier<String> supplier) { | |
| return supplier.get(); | |
| } | |
| public static int localMax(int first, int second) { | |
| return 0; | |
| } | |
| public void nestedLambdas() { | |
| int a =5; | |
| Runnable r1 = () -> { | |
| Runnable r2 = () -> { System.out.println("hello2" + a); }; | |
| System.out.println("hello1" + a); | |
| }; | |
| } | |
| } |