2017-09-18 11 views
1

Je référence ma version java JDK 1.8 mais je reçois toujours une erreur. Quel est le problème avec ce référencement (écrire Java après 6 ans)? ou tout autre moyen plus simple de le faire? J'ai fait quelques recherches et ces fonctions sont disponibles dans les versions ultérieures de Java. Eclipse est OxygenJava Long Comparaison et ValueOf méthode undefined

La méthode valueOf (Long) est définie pour le type long

La méthode compareTo() est définie pour le type long

import java.util.Comparator; 
import java.lang.Long; 

public class MyComparator<Long> implements Comparator<Long>{ 
    @Override 
    public int compare(Long long1, Long long2) {  
     //Long.compareTo() 
      return Long.valueOf(long1).compareTo(Long.valueOf(long2)); 
    } 
} 

et les points JDK à

/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home

enter image description here

+0

Pourquoi avez-vous écrit ''? – SOFe

+0

Je viens de remarquer après avoir posté la question :) – Dexters

Répondre

4

Votre déclaration de MyComparator déclare un type générique du nom Long, et que puis ombresjava.lang.Long. Votre classe ne devrait pas être générique. En outre, vous n'avez pas besoin de Long.valueOf puisque vous avez déjà l'instance Long. Changer pour enlever le générique, comme

public class MyComparator implements Comparator<Long> { 
    @Override 
    public int compare(Long long1, Long long2) { 
     return long1.compareTo(long2); 
    } 
} 
+0

Merci, vient de remarquer après avoir posté la question :) – Dexters