Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java通配符泛型,未在<;上获取错误;?超级字符串>;但除此之外,错误是;无法应用于Java.lang.String“;_Java_Generics_Functional Programming_Wildcard - Fatal编程技术网

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() {...}