1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
package test;
interface IKK
{
void start();
}
public class Gisafirst
{
public static void b(IKK k)
{
k.start();
System.out.println("aa");
}
public static void main(String[] args)
{
b(new IKK()
{
@Override
public void start() {
// TODO Auto-generated method stub
System.out.println("interface");
}
});
}
}
|
cs |
안드로이드 관련되서 Listener 코드를 살펴보던 중, 파라미터내에 함수를 구현하는 코드가 신기해서 알아보니
interface 를 parameter 로 받는경우 해당 interface를 parameter 내에서 선언, 구현하여 사용할 수 있더라.
특이하게도 자바에서 람다식이 있음에도 불구하고 위와 같은 문법을 지원한다.
C++, C# 에서는 불가능한 문법이기에 신기해서 저장해 둔다.
[개인적으로 이런 문법때문에 Java 를 싫어한다..]