2016-04-27 51 views
0

我正在嘗試學習並從7切換到Java 8。
雖然在切換Arrays.sort時出現問題,但出現錯誤:類型不適用。
我知道有一些更好的方法來完成相同的任務,但我想使用相同的功能有更好的理解。
在此先感謝。使用Arrays.sort和Lambda

package src; 

import java.util.Arrays; 
import java.util.Comparator; 

public class Java8Learning { 
    public static void main(String[] args){ 
     Integer[] numbers = {4,5,3,2,6,1}; 
     -------java 7 --------- 
     Arrays.sort(numbers, new Comparator<Integer>() { 
      @Override 
      public int compare(Integer firstNumber, Integer secondNumber){ 
       System.out.print("comparing :"+ firstNumber + " and " + secondNumber); 
       return Integer.compare(firstNumber, secondNumber); 
      } 
     }); 
     -------java 8 --------- 
     // it gave me error 
     //The method sort(T[], Comparator<? super T>) in the type Arrays is not applicable for the arguments (Integer[], (<no type> firstNumber, <no type> secondNumber) -> {}) 
     Arrays.sort(numbers, (firstNumber, secondNumber) -> 
           { System.out.print("comparing :"+ firstNumber + " and " + secondNumber); 
            Integer.compare(firstNumber, secondNumber); 
           }); 

    } 
} 

回答

3

錯過了Integer.compare

Arrays.sort(numbers, (firstNumber, secondNumber) -> 
        { System.out.print("comparing :"+ firstNumber + " and " + secondNumber); 
         return Integer.compare(firstNumber, secondNumber); 
        }); 
之前返回