2013-07-26 2 views
-2

Я пытаюсь скомпилировать код, начинающийся со строки:Возникли проблемы с помощью импорта в Java

import java.util.*; 

, и я получаю сообщение об ошибке:

class, interface, or enum expected 

Я видел на другой пост что это связано с тем, что я неправильно использую импорт. Мне нужно как-то настроить его, например, когда я добавил исключение PATH для java в первую очередь. Я как бы очень плохо разбираюсь в этом. Я уверен, что код хорош помимо этого.

import java.util.*; 

public class setUpGame { 

     private ArrayList<Weapon> weaponArray = new ArrayList<Weapon>(); 

     class Weapon{ 
      private String name = null; 
      private String description = null; 
      private int damageBase; 

      public String getName(){ 
       return name; 
      } 
      public void setName(String n){ 
       name = n; 
      } 
      public String getDescription(){ 
       return description; 
      } 
      public void setDescription(String d){ 
       description = d; 
      } 
      public int getDamageBase(){ 
        return damageBase; 
      } 
      public void setDamageBase(int d){ 
       damageBase = d; 
      } 
     }//END class Weapon 

     Weapon spear = new Weapon(); 
     spear.setName("Mighty Spear"); 
     spear.setDescription("An ancient spear. Bronze of tip, ash of shaft, decorated in slivers or roc's feather."); 
     spear.setDamageBase(3); 

     Weapon hooks = new Weapon(); 
     hooks.setName("Silver Hooks"); 
     hooks.setDescription("A pair of sharp, hand-held fighting hooks. Obsidian core, plated in silver."); 
     hooks.setDamageBase(2); 

     Weapon flameSword = new Weapon(); 
     sword.setName("Flamesake"); 
     sword.setDescription("An arming sword, newly enchanted. It erupts in flame when removed from the scabbard."); 
     sword.setDamageBase(3); 

     Weapon scissors = new Weapon(); 
     scissors.setName("Snippy"); 
     scissors.setDescription("Your mother's sewing scissors. They are nearly two hands long, as she was a large woman."); 
     scissors.setDamageBase(1); 

     Weapon darkGun = new Weapon(); 
     darkGun.setName("Dark Cannon"); 
     darkGun.setDescription("A finely crafted hand cannon. It has been enchanted by a dark sorcerer to fire bolts of corrupting darkness."); 
     darkGun.setDamageBase(3); 

     Weapon iceBow = new Weapon(); 
     iceBow.setName("Chilling Bow"); 
     iceBow.setDescription(""); 
     iceBow.setDamageBase(2); 

     weaponArray.add(spear); 
     weaponArray.add(hooks); 
     weaponArray.add(flameSword); 
     weaponArray.add(scissors); 
     weaponArray.add(darkGun); 
     weaponArray.add(iceBow); 



     // set up game flavor text 
    } 

public class SetUpGameTestDrive(){ 
    public static void main(String [] args){ 
     for (Weapon currentWeapon : weaponArray){ 
      System.out.println(currentWeapon.getName() + "is " + currentWeapon.getDescription() + "It has a damage base of " + 
      currentWeapon.getDamageBase() + "."); 
     }   
    } 
} 
+0

Измените свой вопрос и опубликуйте соответствующий код, чтобы воспроизвести проблему. –

+1

Похоже, что вы оставили символ '.', должен быть' import java.util. *; ' –

+0

Является ли импорт в верхней части файла, которому предшествует только оператор« package »? Ах, я думаю, Шафик заметил это! – Steve

ответ

6

Это должно быть import java.util.*; Что это утверждение означает, включают в себя все типы тех, которые присутствуют в java.util пакете.

Если вы хотите включить только определенный тип, вы можете использовать полное имя, например. java.util.Calendar. Это будет включать только класс .

Существует распространенное заблуждение, что оператор import используется для включения необходимых типов для использования в коде, но это не совсем так. Это просто позволяет нам использовать короткое имя вместо его полного имени.

Вы все еще можете использовать

package com.so; 

public class ImportTest { 


    public static void main(String[] args) { 

     java.util.Date date = new java.util.Date(); 
     System.out.println(date); 

    } 

} 

Это будет компилироваться и распечатать текущую дату. Оператор import просто позволяет использовать короткие имена для типов.

поэтому, когда вы используете заявление на импорт, тогда код становится.

упаковка com.so;

import java.util.Date; 

public class ImportTest { 


    public static void main(String[] args) { 

     Date date = new Date(); 
     System.out.println(date); 

    } 

} 
+0

Это была опечатка здесь, в сообщении. Я использовал java.util. *; И даже попытался использовать: import java.util.ArrayList; который я фактически пытаюсь использовать, но я все еще получаю ошибку. –

+0

@JavaNoob, пожалуйста, напишите полный код? –

+0

На самом деле это не ответ, так как непонятно, какова настоящая проблема. –

Смежные вопросы