UnaryOperator identityFunction() {
return (UnaryOperator) IDENTITY_FN;
}
// 제네릭 싱글턴을 사용하는 예
public static void main(String[] args) {
String[] strings = {"삼베", "대마", "나일론" };
UnaryOperator sameString = identityFunction();
for (String s : strings)
System.out.println(sameString.apply(s));
Number[] numbers = { 1, 2.0, 3L };
UnaryOperator sameNumber = identityFunction();
for (Number n : numbers)
System.out.println(sameNumber.apply(n))l
}">
UnaryOperator identityFunction() {
return (UnaryOperator) IDENTITY_FN;
}
// 제네릭 싱글턴을 사용하는 예
public static void main(String[] args) {
String[] strings = {"삼베", "대마", "나일론" };
UnaryOperator sameString = identityFunction();
for (String s : strings)
System.out.println(sameString.apply(s));
Number[] numbers = { 1, 2.0, 3L };
UnaryOperator sameNumber = identityFunction();
for (Number n : numbers)
System.out.println(sameNumber.apply(n))l
}">
UnaryOperator identityFunction() {
return (UnaryOperator) IDENTITY_FN;
}
// 제네릭 싱글턴을 사용하는 예
public static void main(String[] args) {
String[] strings = {"삼베", "대마", "나일론" };
UnaryOperator sameString = identityFunction();
for (String s : strings)
System.out.println(sameString.apply(s));
Number[] numbers = { 1, 2.0, 3L };
UnaryOperator sameNumber = identityFunction();
for (Number n : numbers)
System.out.println(sameNumber.apply(n))l
}">
// 제네릭 싱글턴 팩터리 패턴
private static UnaryOperator<Object> IDENTITY_FN = (t) -> t;
@SuppressWarnings("unchecked")
public static <T> UnaryOperator<T> identityFunction() {
return (UnaryOperator<T>) IDENTITY_FN;
}
// 제네릭 싱글턴을 사용하는 예
public static void main(String[] args) {
String[] strings = {"삼베", "대마", "나일론" };
UnaryOperator<String> sameString = identityFunction();
for (String s : strings)
System.out.println(sameString.apply(s));
Number[] numbers = { 1, 2.0, 3L };
UnaryOperator<Number> sameNumber = identityFunction();
for (Number n : numbers)
System.out.println(sameNumber.apply(n))l
}
재귀적 타입 한정