Classe Scanner

Bora ver se eu começo bem nesse fórum. Tô começando agora em Java. Fiz uma classe denominada Time que segue abaixo:

import java.util.Scanner;

public class Time
{
   private int hour;
   private int minute;
   private String time;

   public Time( String timeEntered )
   {
      time = timeEntered;
   }

   // Separa a string no formato "00:00"
   public separateTime()
   {
      Scanner input = new Scanner( time );
      
      input.useDelimiter( ":" );
      hour = input.nextInt;
      minute = input.nextInt;
   }

O método separateTime pega a string no formato hh:mm e atribui hh a hour e mm a minute. Fiz uma outra classe para testar esta e usei o construtor com uma entrada do usuário na linha de comando. Quando ele faz uma chamada ao metodo separateTime, um erro em tempo de execução é encontrado. Fiz uns testes e identifiquei que o erro ocorreu quando na linha Scanner input = new Scanner( time );. Ele faz a verificação de tipos e compila porque realmente não existe incompatibilidade, mas só ocorre este erro porque ele tenta usar uma variável de instância (campo). Se eu fizer a mundança da linha para a seguinte: Scanner input = new Scanner( “03:50” ); ele funciona normalmente. Já usei o operador de coerção ( String ) mas não funcionou.
Uso o J2Sdk 5.0.
E agora? O que pode estar ocorrendo?

[size=“11”]
[color=“red”]

  • Editado: Aumente as chances de alguém responder o seu tópico. Use BBCode em seus códigos para mantê-los identados e mais legíveis para outros usuários. - Matheus[/color][/size] :joia:

Mas qual é o seu problema mesmo? (Dica: dê qualquer nome para essa classe, menos Time, porque já existe 1 classe no Java (java.sql.Time), e você vai acabar tendo problemas - use a velha e boa língua portuguesa, batize essa classe de Tempo, ou Horário, ou sei lá o quê.)

Corrigi mais ou menos o código para você. Mas não entendi qual o seu problema.

import java.util.Scanner;

public class Time
{
   private int hour;
   private int minute;
   private String time;

   public Time( String timeEntered )
   {
      time = timeEntered;
   }

   // Separa a string no formato "00:00"
   public void separateTime()
   {
      Scanner input = new Scanner( time );
     
      input.useDelimiter( ":" );
      hour = input.nextInt();
      minute = input.nextInt();
   }
}

class TesteTime {
    public static void main(String[] args) {
        Time t = new Time ("03:50");
        t.separateTime();
    }
}

Esquece mesmo… O problema tá entre a cadeira e o computador. Eu tava tentando entrar um valor não aceito na linha de comando.

Por isso tava dando pau, mas tudo beleza agora.
Valeu pelo esforço!