if (this != null)
//continua
sério… muito sério.
if (this != null)
//continua
sério… muito sério.
[quote=mario.fts][code]
if (this != null)
//continua
[/code]
sério… muito sério.[/quote]
É que em C++ às vezes você precisa de fazer esse tal teste “if (this != NULL)”. O carinha deve ter sido programador C++ em alguma vida passada
[quote=thingol][quote=mario.fts][code]
if (this != null)
//continua
[/code]
sério… muito sério.[/quote]
É que em C++ às vezes você precisa de fazer esse tal teste “if (this != NULL)”. O carinha deve ter sido programador C++ em alguma vida passada :P[/quote]
Ah, é??? Em C++ tem isso ou você está zuando??? Se tiver explica porque…rssrsrsr
T+
Vou explicar direitinho por quê.
Como vocês devem saber, em C++ e C# o default não é chamar um método dependendo da classe do objeto (isso em C++ se chama um método "virtual"), e sim dependendo do tipo da variável (mais ou menos o que ocorre, em Java, quando se chama um método "estático").
Isso quer dizer que é possível invocar um método sem ter um objeto válido. Algo como:
class Cliente {
public:
void setNome (const std::string& valor) { nome = valor; }
private:
std::string nome;
};
...
Cliente *cl = NULL;
cl->setNome ("José");
O que deve ocorrer em C++ é algo como o nosso conhecido NullPointerException, só que mais assustador.
Mas você pode fazer uma coisa como:
void setNome (const std::string& valor) {
if (this == NULL) throw new std::exception ("Trying to call setNome upon an uninitialized object");
nome = valor;
}
se você for mais medroso.
Você pode até atribuir ao this, se usar um compilador antigo. Hoje em dia os compiladores não são tão toscos e não permitem mais isso.
[quote=paulog]Enquanto isso na minha empresa…
for (int i = 0; i < 100; ++i) {
try {
recurso.close();
} catch (Throwable e) {}
}
Alguém queria ter certeza que o recurso iria ser fechado.
Se eu colocar o for até 50, será que melhora a performance?[/quote]
É para fechar muito bem fechado. Ao menos não tem um sleep no meio.
[quote=Feijão]Para mim uma verdadeira obra de arte:
public int qdadePorPessoaPorEventoPorSessao(Timestamp sessaoDate) {
sessaoDate = updateDataEventoIfUniqueEvento(sessaoDate);
int count = 0;
try {
for (SessaoPessoa sessaoPessoa : EventoBusiness.getInstance().getSessaoPessoaByEvento(new Integer(codigoEvento))){
if (sessaoPessoa.getPk().getCodPessoa().intValue()== new Integer(codigoAssinatura).intValue() &&
sessaoPessoa.getPk().getCodEvento().compareTo(new Integer(codigoEvento))==0 &&
sessaoPessoa.getPk().getDatSessao().compareTo(sessaoDate) ==0){
count++;
}
}
return new Integer(count);
} catch(Exception e){
e.printStackTrace();
}
return new Integer(0);
}
[/quote]
Cada getPk é uma consulta ao banco?
É irritante ver código com esses new Integer().
Você não viu o código nojento que eu estava trabalhando esses dias. Devia ter pelo menos uns dez mil new Integer() espalhados.
Aliás, dava para postar o projeto inteiro neste tópico. :roll:
Código “doado” por um amigo que já não aguenta mais encontrar tosquices todos os dias:
[code]function vaiParaOProximoCampo(campoAtual) {
if (campoAtual.name == 'codPessoa') {
if (campoAtual.value.length == 9) {
document.oForm.emailPessoa.focus();
}
} else if (campoAtual.name == 'diaNascimentoPessoa') {
if (campoAtual.value.length == 2) {
document.oForm.mesNascimentoPessoa.focus();
}
} else if (campoAtual.name == 'mesNascimentoPessoa') {
if (campoAtual.value.length == 2) {
document.oForm.anoNascimentoPessoa.focus();
}
} else if (campoAtual.name == 'anoNascimentoPessoa') {
if (campoAtual.value.length == 4) {
document.oForm.cpfPessoa.focus();
}
} else if (campoAtual.name == 'cpfPessoa') {
if (campoAtual.value.length == 11) {
document.oForm.telefoneResidencialDDD.focus();
}
} else if (campoAtual.name == 'cnpj') {
if (campoAtual.value.length == 14) {
document.oForm.telefoneResidencialDDD.focus();
}
} else if (campoAtual.name == 'telefoneResidencialDDD') {
if (campoAtual.value.length == 2) {
document.oForm.telefoneResidencial.focus();
}
} else if (campoAtual.name == 'telefoneResidencial') {
if (campoAtual.value.length == 8) {
document.oForm.telefoneComercialDDD.focus();
}
} else if (campoAtual.name == 'telefoneComercialDDD') {
if (campoAtual.value.length == 2) {
document.oForm.telefoneComercial.focus();
}
} else if (campoAtual.name == 'telefoneComercial') {
if (campoAtual.value.length == 8) {
document.oForm.telefoneCelularDDD.focus();
}
} else if (campoAtual.name == 'telefoneCelularDDD') {
if (campoAtual.value.length == 2) {
document.oForm.telefoneCelular.focus();
}
} else if (campoAtual.name == 'telefoneCelular') {
if (campoAtual.value.length == 8) {
document.oForm.senhaPessoa.focus();
}
}[/code]
me = new ObjectFactory();
if (me == null) {
throw new TechnicalException("Objeto 'ObjectFactory' nulo");
}
[quote=thingol][quote=danieldestro]Código “doado” por um amigo que já não aguenta mais encontrar tosquices todos os dias:
function vaiParaOProximoCampo(campoAtual) {
...
[/quote]
Ainda se funcionasse…[/quote]
O cara deve ter confundido com pascal. rs
[quote=juliocbq][quote=thingol][quote=danieldestro]Código “doado” por um amigo que já não aguenta mais encontrar tosquices todos os dias:
function vaiParaOProximoCampo(campoAtual) {
...
[/quote]
Ainda se funcionasse…[/quote]
O cara deve ter confundido com pascal. rs[/quote]
Dessa vez foi tosquice minha. O código é JavaScript, não Java, portanto dá para comparar strings com “==”. Mesmo assim esse código parece um pouco tosco.
Vi um que fiquei espanidiotizado.
O cara abaixo tinha medo de lançar uma Exception pra cima então decediu tentar denovo.
public int convertString(String string){
int num = 0;
try{
num = Integer.parseInt(string);
}catch(Throwable t){
return convertString(string);
}
return num;
}
hAUhAU
vi alguem na facul fazer:
int x=0;
int y = 5;
if(x==0){
x=y;
}else
x=y;
Vale PL/SQL?
CASE (SubStr(texto,cont,1))
WHEN '0' THEN
texto := texto||SubStr(texto,cont,1);
WHEN '1' THEN
texto := texto||SubStr(texto,cont,1);
WHEN '2' THEN
texto := texto||SubStr(texto,cont,1);
WHEN '3' THEN
texto := texto||SubStr(texto,cont,1);
WHEN '4' THEN
texto := texto||SubStr(texto,cont,1);
WHEN '5' THEN
texto := texto||SubStr(texto,cont,1);
WHEN '6' THEN
texto := texto||SubStr(texto,cont,1);
WHEN '7' THEN
texto := texto||SubStr(texto,cont,1);
WHEN '8' THEN
texto := texto||SubStr(texto,cont,1);
WHEN '9' THEN
texto := texto||SubStr(texto,cont,1);
ELSE
texto := texto;
END CASE;
Gente, esses dias peguei um:
if (1==1){
//um código
} else {
//mais outro código =O
}
Essa é fresquinha, tirei agora aqui do fórum
StringBuilder erros=new StringBuilder();
erros.append(System.getProperty ("line.separator")+suaString);
Para quê usar o StringBuilder então, usa logo concatenação de strings
sugestão:
StringBuilder erros=new StringBuilder();
erros.append(System.getProperty ("line.separator")).appned(suaString);
E o que vocês acham disso? o cara usa constantes como variáveis globais. e isso se repete infinitas vezes pelo sistema… em que eu estou dando manutenção :evil:
public class Constantes{
public static final Long CODIGO_X = 0L;
}
public void executa(Long codigo) {
Constantes.CODIGO_X = codigo;
log.debug(Constantes.CODIGO_X, "QUALQUER COISA");
//CODIGOS...
log.debug(Constantes.CODIGO_X, "QUALQUER OUTRA COISA");
}
p.s.: esse sai do mesmo lugar daonde o Destro tirou vááááááááááááários dos que ele mesmo já colocou aqui e que amigos ainda passam para ele…
edit 1: Alterei nomes de variáveis e classes.
Tenho que compartilhar com o mundo, pois obras de arte foram feitas para isso.
Se este método funciona não sei, mas os nomes são maravilhosos. Show de bola. Parabéns campeão!
public Sessao getCurrentSessaoByDateByNull(Timestamp sessaoDate) throws Exception {
sessaoDate = updateDataEventoIfUniqueEvento(sessaoDate);
for (Sessao sessao : sessoes){
if (sessao.getDatSessao().compareTo(sessaoDate)==0){
return sessao;
}
}
return null;
}
Certa fez, disseram para um determinado pogueiro que conheço, que colocar números mágicos no código era ruim, que o certo era definir constantes e acessar sempre as constantes, para deixar a manutenção no código mais fácil.
O resultado disso foi mais ou menos isso:
public static final int UM = 1;
public static final int DOIS = 2;
public static final int TRES = 3;
public static final int QUATRO = 4;
public static final int CINCO = 5;
...
if (sessao.getUsuario().getIsso().fazAquilo().metodoBizarro() == QUARENTA_E_TRES) {
...
}