Java通配符泛型,未在<;上获取错误;?超级字符串>;但除此之外,错误是;无法应用于Java.lang.String“;
在使用泛型、通配符和函数式编程尝试一段代码时,我有一个疑问,下面是一个简单的程序Java通配符泛型,未在<;上获取错误;?超级字符串>;但除此之外,错误是;无法应用于Java.lang.String“;,java,generics,functional-programming,wildcard,Java,Generics,Functional Programming,Wildcard,在使用泛型、通配符和函数式编程尝试一段代码时,我有一个疑问,下面是一个简单的程序 import java.util.function.Function; public static void main(String[] args) { String x = ""; String y = getFormData().apply(x); } private static Function<?, String> getFormData() { return x
import java.util.function.Function;
public static void main(String[] args) {
String x = "";
String y = getFormData().apply(x);
}
private static Function<?, String> getFormData() {
return x -> ((String) x).concat("asd");
}
函数中的应用(捕获)
无法应用于(java.lang.String
)
但是如果我将getFormData()函数改为
private static Function<? super String, String> getFormData() {
return x -> ((String) x).concat("asd");
}
private static Function方法的第一个版本:
Function<?, String> getFormData() {...}
不允许在方法的第一个版本中返回函数
:
Function<?, String> getFormData() {...}
不允许返回函数
类型表达式函数类型表达式函数方法的第一个版本getFormData()
可以返回函数
。该函数显然不能应用于字符串
!但是,在第二种情况下,不允许getFormData()
返回函数
。方法的第一个版本getFormData()
可以返回函数
。该函数显然不能应用于字符串
!但是,在第二种情况下,不允许getFormData()
返回函数。
Function<? super String, String> getFormData() {...}