# return this;



## miguelgalaxy (30. Mrz 2005)

hy
in der klasse java.nio.Buffer entdeckte ich folgende Instanzmethode:


```
public final Buffer flip() {
	limit = position;
	position = 0;
	mark = -1;
	return this;
    }
```

kann mir jemand sagen was hier nun bei return this passiert??
vielen dank
grüsse m.


----------



## Bleiglanz (30. Mrz 2005)

der aufrufer schreibt sowas wie

    Buffer abholen = bufferinstanz.flip()

und bekommt eine Referenz auf den gefliptten Buffer (die Membermethode gibt eine Referenz auf "sich selbst" zurück)

Flips this buffer. The limit is set to the current position and then the position is set to zero. If the mark is defined then it is discarded.


Dass überhaupt was zurückgegeben wird ist wahrscheinlich eine reine Komfortsache (es wird ja bufferinstanz selbst verändert)


----------



## Henrik (30. Mrz 2005)

> Dass überhaupt was zurückgegeben wird ist wahrscheinlich eine reine Komfortsache (es wird ja bufferinstanz selbst verändert)



Der Grund ist eigentlich das man sachen wie 


```
buffer.flip().flip()
```

machen kann.

Also wenn man sich selbst zurück gibt kann man gleich eine andere Methode aufrufen mit einem weitern Punkt sonst müste man 


```
buffer.flip();
buffer.flip();
```

schreiben um zum gleichen ergebnis zu kommen.


----------



## Bleiglanz (31. Mrz 2005)

ja und? genau das meinte ich mit Konfortsache???


----------



## Snape (31. Mrz 2005)

Das versteht man unter Komfort?
Ich bevorzuge
buffer.flip()
buffer.flip()

bevor es so aussieht:
buffer.flip().methode().nochEineMethode().flip().undNochEine().flip().undJetztWirdEsUnuebersichtlich().flip().derGrashuepfer()


----------



## Bleiglanz (31. Mrz 2005)

ja, solche Verkettungen sind ein "bad smell in code"

Ausnahme: StringBuffer u.ä. wo man oft ein paar Zeilen Source einparen kann

gibt natürlich noch ein paar andere "Anwendungen" die im wesentlichen jeweil eine Codezeile einsparen, z.B.


```
return buffer.flip();  
   //
   // anstatt
   buffer.flip()
   return buffer;
  

   //oder

   tuwasmitdem(buffer.flip());
```


----------



## Snape (31. Mrz 2005)

Bleiglanz hat gesagt.:
			
		

> ja, solche Verkettungen sind ein "bad smell in code"
> 
> gibt natürlich noch ein paar andere "Anwendungen" die im wesentlichen jeweil eine Codezeile einsparen, z.B.
> 
> ...



Wobei letzteres einfacher zu debuggen ist...


----------



## Illuvatar (31. Mrz 2005)

Dann benutz halt letzteres, hindert dich ja keiner


----------



## Snape (31. Mrz 2005)

Gott sei Dank!


----------

