문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
|
java:7 [2011/09/14 21:56] kwon37xi |
java:7 [2018/10/17 17:46] (현재) kwon37xi [ThreadLocalRandom] |
||
|---|---|---|---|
| 줄 155: | 줄 155: | ||
| * [[java: | * [[java: | ||
| + | ===== MethodHandles ===== | ||
| + | MethodHandle을 사용하면 메소드를 객체로 전달하는 것이 가능해진다. [[http:// | ||
| + | |||
| + | 아래는 multiply 메소드를 MethodHandle 객체로 만든 뒤에 해당 메소드를 호출하는 것을 보여준다. | ||
| + | <code java> | ||
| + | import java.lang.invoke.MethodHandle; | ||
| + | import java.lang.invoke.MethodHandles; | ||
| + | import java.lang.invoke.MethodHandles.Lookup; | ||
| + | import java.lang.invoke.MethodType; | ||
| + | |||
| + | public class Java7Test { | ||
| + | |||
| + | public static int multiply(int i, int j) { | ||
| + | return i * j; | ||
| + | } | ||
| + | |||
| + | public static void main(String[] args) throws Throwable { | ||
| + | Lookup lookup = MethodHandles.lookup(); | ||
| + | |||
| + | MethodHandle multiply = lookup.findStatic(Java7Test.class, | ||
| + | | ||
| + | System.out.println(multiply.invoke(5, | ||
| + | | ||
| + | // 1번 인자로 4를 미리 지정해둔다. | ||
| + | MethodHandle quadruple = MethodHandles.insertArguments(multiply, | ||
| + | System.out.println(quadruple.invoke(5)); | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | ===== ThreadLocalRandom ===== | ||
| + | * [[https:// | ||
| + | * 쓰레드별로 Random 객체를 따로 생성하는 [[https:// | ||
| + | <code java> | ||
| + | // 대부분 아래와 같은 형태로 사용하면 된다. | ||
| + | ThreadLocalRandom.current().nextX(...) | ||
| + | </ | ||
| + | * [[http:// | ||
| ===== 기타 ===== | ===== 기타 ===== | ||
| * 모든 Reflection 관련 예외들은 [[http:// | * 모든 Reflection 관련 예외들은 [[http:// | ||
| * [[http:// | * [[http:// | ||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | * [[http:// | ||
| ===== 참조 ===== | ===== 참조 ===== | ||
| + | * [[http:// | ||
| + | * [[http:// | ||
| * [[http:// | * [[http:// | ||
| * [[http:// | * [[http:// | ||
| * [[http:// | * [[http:// | ||
| * [[http:// | * [[http:// | ||
| + | * [[http:// | ||
| + | * [[http:// | ||