首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java 8混淆-> String::compareToIgnoreCase

Java 8混淆-> String::compareToIgnoreCase
EN

Stack Overflow用户
提问于 2019-02-23 18:21:01
回答 2查看 894关注 0票数 3

有谁能帮我理解以下几点吗?

代码语言:javascript
复制
// This works fine
List list= Arrays.asList("a","b","A","B"); 
str.sort(String::compareToIgnoreCase); 

是否可以将上述方法引用赋值给任何变量?

?holder = String::compareToIgnoreCase;

但是,我可以分配对象引用,而不会出现以下任何问题:

代码语言:javascript
复制
String aa = "aa"; 
Function compareFunction = aa::compareToIgnoreCase;

提前谢谢你,阿卜杜勒

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-02-23 18:25:15

String::compareToIgnoreCase等于匿名类:

代码语言:javascript
复制
new Comparator<String>() {
    @Override
    public int compare(String s, String str) {
        return s.compareToIgnoreCase(str);
    }
};

因此,可以将其赋值给具有Comparator<String>类型的变量:

代码语言:javascript
复制
Comparator<String> compareToIgnoreCase = String::compareToIgnoreCase;

同时,表达式aa::compareToIgnoreCase;意味着返回整数的字符串参数aa的函数。

代码语言:javascript
复制
new Function<String, Integer>() {
    @Override
    public Integer apply(String str) {
        return aa.compareToIgnoreCase(str);
    }
};

或者:

代码语言:javascript
复制
Function<String, Integer> fun = aa::compareToIgnoreCase;

String::compareToIgnoreCase;aa::compareToIgnoreCase;的区别在于,在第一种情况下,我们需要两个参数:调用方法compareToIgnoreCase的字符串和将在该方法中传递的字符串。它与int compare(T o1, T o2);的签名完全匹配。

在第二种情况下,您几乎有一个参数(aa)。因此,您只需要一个,它将被传递到compareToIgnoreCase。它与R apply(T t);完全匹配

票数 5
EN

Stack Overflow用户

发布于 2019-02-24 13:09:55

代码语言:javascript
复制
public class Test {
public static void main(String args[]) {
  String str1 = "Strings are immutable";
  String str2 = "Strings are immutable";
  String str3 = "Integers are not immutable";

  int result = str1.compareToIgnoreCase( str2 );
  System.out.println(result);

  result = str2.compareToIgnoreCase( str3 );
  System.out.println(result);

  result = str3.compareToIgnoreCase( str1 );
  System.out.println(result);

}}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54844668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档