2015-05-12 3 views
2

Это мой код:TreeMap Compile Error

import java.util.*; 
    public class TreeMap { 
    public static void main(String[] args) { 
     Map<String,Integer> treemap = new TreeMap<String,Integer>(); 
     Some code to fill the treemap ie treemap.put("Kevin", 36); 
     } 
     } 

И я получаю эту ошибку компилятора:

TreeMap.java:5: error: type TreeMap does not take parameters 
    Map<String,Integer> treemap = new TreeMap<String,Integer>(); 
              ^

ответ

2

Используйте полное имя класса для класса Java TreeMap

new java.util.TreeMap<String,Integer>() 
+0

Я получаю еще одну ошибку компиляции: TestMapTree.java:1: error: ';' expedected Это относится к моей линии импорта и, конечно же, к; уже присутствует – user3302053

+0

Сначала я неправильно понял ваш комментарий. Но это решило мою проблему, спасибо! Почему это происходит? – user3302053

+0

Этот код отлично подходит для меня: import java.util. *; Публичный класс TreeMap { public static void main (String [] args) { Карта treemap = new java.util.TreeMap (); } } – chokdee

9
public class TreeMap 

переименовать класс. Он столкнулся с java.util.TreeMap

Компилятор считает, что new TreeMap<String,Integer>() относится к вашему собственному классу, который не принимает никаких параметров.

+0

Не помогло, я переименовал его в TreeMapTest, и я получаю те же ошибки. – user3302053

+0

@ user3302053 показать нам код после переименования. –

+0

- это тот же код; кроме открытого класса TestMapTree {} и импорта java.util.TreeMap (); – user3302053

2

Для уточнения комментарий Эран, импортируйте java.util. * Импортирует все в java.util, который включает в себя java.util.TreeMap и кучу вещи, которые вы не используете. Обычно это не хорошая практика программирования, потому что это означает, что есть больше имен, потенциально конфликтующих с именами, которые вы решили использовать (например, что случилось с вами выше). Вместо импорта java.util. * В будущем попробуйте импортировать только те объекты, которые вам действительно нужны.