我可以在 JAVA 8 中将哪种类型的参数传递给 ToIntFunction 函数式接口
which type of argument I can pass into ToIntFunction Functional Interface in JAVA 8
ToIntFunction<String> i = (x)-> Integer.parseInt(x);
System.out.println(i.applyAsInt("21235"));
以上是 TointFunction 的一个示例,其中 T 是类型字符串。
根据定义,我可以将哪些其他类型传递给它接受通用类型 T
。
除 String 之外的其他类型的任何其他示例。
ToIntFunction<T>
是一个功能接口,可帮助您将类型 T
的对象转换为 int
。
注意 您必须提供有关如何将类型 T
转换为 int
.
的定义
在您的示例中,您已将 T
用作 String
,并提供了一种通过以下方法将 string
转换为 int
的机制。
ToIntFunction<String> i = (x)-> Integer.parseInt(x);
因此,它适用于“21235”。但是,它会破坏 Integer.parseInt(x)
无法解析的任何其他内容。
如果要将不同的对象解析为 int
,则必须编写适当的 ToIntFunction
函数。下面是将自定义类型 class MyClass
转换为 int
的示例。
class MyClass{ public String num;}
ToIntFunction<MyClass> i = (x1)-> Integer.parseInt(x1.num);
现在,上面的 ToIntFunction
将适用于类型为 MyClass
的对象。
功能接口ToIntFunction<T>
只是一个没有任何实现的接口。 T
类型应替换为您实现此接口的任何类型。您不能对各种未知类型的所有对象范围使用唯一的实现。
这适用于您定义的字符串:
ToIntFunction<String> i = (x) -> Integer.parseInt(x);
您已将 T
替换为 String
,该函数除了 String
没有讨论和 returns Integer
。如果你想对另一种类型有相同的功能,实现它:
ToIntFunction<List<?>> i1 = list -> list.size(); // A primitive example:
i1.applyAsInt(new ArrayList<>()); // gets size of any List
ToIntFunction<MyObject> i2 = myObject -> myObject.getNumber(); // A custom object
i2.applyAsInt(new MyObject());
关键是,任何类型都可以用一个简单的规则替换:实施必须确保 Integer
在任何情况下都会得到结果。
当使用 ToIntFunction<T>
作为目标类型时,这意味着赋值运算符右侧的任何 lambda/function 必须是消耗类型 T
并且它 returns int
并且 lambda 或自定义函数的逻辑类型无关紧要。
在这个具体的例子中,当你在赋值运算符的右侧使用 Integer.parseInt(...)
时,为了使代码编译和工作,唯一的类型 T
是 String
。
ToIntFunction<String> i = (x)-> Integer.parseInt(x);
System.out.println(i.applyAsInt("21235"));
以上是 TointFunction 的一个示例,其中 T 是类型字符串。
根据定义,我可以将哪些其他类型传递给它接受通用类型 T
。
除 String 之外的其他类型的任何其他示例。
ToIntFunction<T>
是一个功能接口,可帮助您将类型 T
的对象转换为 int
。
注意 您必须提供有关如何将类型 T
转换为 int
.
在您的示例中,您已将 T
用作 String
,并提供了一种通过以下方法将 string
转换为 int
的机制。
ToIntFunction<String> i = (x)-> Integer.parseInt(x);
因此,它适用于“21235”。但是,它会破坏 Integer.parseInt(x)
无法解析的任何其他内容。
如果要将不同的对象解析为 int
,则必须编写适当的 ToIntFunction
函数。下面是将自定义类型 class MyClass
转换为 int
的示例。
class MyClass{ public String num;}
ToIntFunction<MyClass> i = (x1)-> Integer.parseInt(x1.num);
现在,上面的 ToIntFunction
将适用于类型为 MyClass
的对象。
功能接口ToIntFunction<T>
只是一个没有任何实现的接口。 T
类型应替换为您实现此接口的任何类型。您不能对各种未知类型的所有对象范围使用唯一的实现。
这适用于您定义的字符串:
ToIntFunction<String> i = (x) -> Integer.parseInt(x);
您已将 T
替换为 String
,该函数除了 String
没有讨论和 returns Integer
。如果你想对另一种类型有相同的功能,实现它:
ToIntFunction<List<?>> i1 = list -> list.size(); // A primitive example:
i1.applyAsInt(new ArrayList<>()); // gets size of any List
ToIntFunction<MyObject> i2 = myObject -> myObject.getNumber(); // A custom object
i2.applyAsInt(new MyObject());
关键是,任何类型都可以用一个简单的规则替换:实施必须确保 Integer
在任何情况下都会得到结果。
当使用 ToIntFunction<T>
作为目标类型时,这意味着赋值运算符右侧的任何 lambda/function 必须是消耗类型 T
并且它 returns int
并且 lambda 或自定义函数的逻辑类型无关紧要。
在这个具体的例子中,当你在赋值运算符的右侧使用 Integer.parseInt(...)
时,为了使代码编译和工作,唯一的类型 T
是 String
。