[Java] Refactoring methode

Pagina: 1
Acties:

  • Cuball
  • Registratie: Mei 2002
  • Laatst online: 03-04 10:15
Waarschijnlijk zie ik hier iets simpel over het hoofd, maar gewoon eventjes een voorbeeld:

Stel ik heb volgende code
Java:
1
2
3
4
5
6
7
8
Integer amount = null;
    if (type == REALISATION_TYPE) {
            amount = reward.getRealisationAmount(i);
        } else if (type == TIP_TYPE) {
            amount = reward.getTipAmount(i);
        } else { amount = reward.getEmptyAmount(i);
          }
//doe iets verder met amount


als ik dan via eclipse refactor en extract method op los laat krijg ik het volgende

Java:
1
2
3
Integer amount = null;
amount = getAmount(reward, type, amount, i);
//doe iets verder met amount


nu vroeg ik me af of deze amount parameter wel meegegeven moet worden ? en dat ik in getAmount methode gewoon een lokale Integer amount kan aanmaken en deze returnen? volgens mij blijft dit hetzelfde.

"Live as if you were to die tomorrow. Learn as if you were to live forever"


  • Salandur
  • Registratie: Mei 2003
  • Laatst online: 22:48

Salandur

Software Engineer

die amount parameter is inderdaad redelijk nuttigloos.

Assumptions are the mother of all fuck ups | iRacing Profiel


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 15-04 22:58

Janoz

Moderator Devschuur®

!litemod

In principe is het hetzelfde. Sterker nog, ik heb je code gekopieerd en zelf extract method gebruikt, maar bij mij wordt de amount niet eens meer meegegeven.

Wat ik me nog wel kan voorstellen is dat er tussen regel 1 en regel 2 in je orginele code al iets gebeurt met amount. In dat geval kan amount niet binnen de methode aangemaakt worden omdat er eventueel al acties op zijn uitgevoerd.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • Nick_S
  • Registratie: Juni 2003
  • Laatst online: 13-04 23:48

Nick_S

++?????++ Out of Cheese Error

Dan heb je in Eclipse je code niet genoeg geselecteerd. Je moet hem selecteren vanaf het aanmaken van je Integer declaratie.
Java:
1
2
3
4
5
6
7
8
9
10
11
12
//Begin selectie
        Integer amount = null;

        if (type == REALISATION_TYPE) {
            amount = new Integer(10);
        } else if (type == TIP_TYPE) {
            amount = new Integer(15);
        } else {
            amount = new Integer(20);
        }
        // doe iets verder met amount
//Eind selectie

En daarna refactor, extract method.

'Nae King! Nae quin! Nae Laird! Nae master! We willna' be fooled agin!'


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 15-04 22:58

Janoz

Moderator Devschuur®

!litemod

Zelfs toen ik de declaratie niet meenam werd deze niet als parameter meegegeven. Er bleef wel een apparte declaratie en toekenning staan.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'