谓词<T>方法等于()

Ric*_*bby 3 java guava

我使用的接口Predicate<T>com.google.common.base(谷歌番石榴)

但我不知道该equals()方法如何工作......

false当我输入这样的内容时,为什么会得到:

    Predicate<Object> PredicateD = new Predicate<Object>(){
          @Override public boolean apply(Object number) {
                return ((number instanceof Double) && (Math.floor((Double)number) == (Double)number));
            }    
    };

    Predicate<Object> PredicateM = new Predicate<Object>(){
          @Override public boolean apply(Object number) {
                return ((number instanceof Double) && (Math.floor((Double)number) == (Double)number));
            }    
    };

    System.out.println(PredicateD.equals(PredicateM));
Run Code Online (Sandbox Code Playgroud)

在此先感谢您的帮助,

Jon*_*eet 13

您正在创建两个不同的匿名内部类,但它们都没有覆盖equals,因此您将获得默认实现,因此任何两个不相等的引用都被视为不相等.

由于价值观PredicateDPredicateM不同的引用,equals返回false.