Pergunta

Eu gostaria de fazer um método chamado "isBetween" retornando um booleano, vendo se uma data GregorianCalendar cai entre dois outros. Alternativamente, eu gostaria de apenas definir operadores de para a classe. Eu sou muito novo para Java, então eu não tenho certeza .... eu posso até fazer qualquer um desses? Se sim, como?

Foi útil?

Solução

Java não suporta monkeypatching ou sobrecarga de operadores, mas sente livre GregorianCalendar subclasse e adicionar o que os métodos que você precisa.

Mas então, você realmente precisa de um novo método para fazer cal.after(startCal) && cal.before(endCal)?

Outras dicas

método Não, você não pode adicionar a pré-existentes aulas e você não pode fazer sobrecarga de operador seja em Java.

Como alternativa, você poderia fornecer um método utilitário estático em sua própria classe, por exemplo.

Eu aconselharia contra estendendo a classe - você não está adicionando qualquer comportamento que é específico para instâncias de uma classe particular, você está expressando a lógica que é aplicável para qualquer GregorianCalendar (ou possivelmente qualquer calendário em tudo).

Como Joachim diz, um método estático em uma classe de utilitário é o caminho a percorrer - e se o Java sempre ganha métodos de extensão como por C # (eu sei que eles foram sugeridos para Java 7, mas eu pensar eles estão fora no momento), você pode modificá-los nesse ponto.

Oh e usar Joda Tempo de qualquer maneira:)

Você deve tentar estendê-lo:

class MyGregorianCalendar extends GregorianCalendar
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top