I assume that you are most interested in how default methods are implemented internally. Here is the javap parsing of your code (using a very useful :javap <classname>scala console command :
scala> class Adapter(url: String = "127.0.0.1", port: Int = 8080)
defined class Adapter
scala> :javap -c Adapter$ // Adapter$ because we want the companion object
Compiled from "<console>"
public class Adapter$ {
...
public java.lang.String $lessinit$greater$default$1();
Code:
0: ldc
2: areturn
public int $lessinit$greater$default$2();
Code:
0: sipush 8080
3: ireturn
...
, , , -. :
scala> Adapter.getClass.getMethod("$lessinit$greater$default$1").invoke(Adapter)
res8: Object = 127.0.0.1
scala> Adapter.getClass.getMethod("$lessinit$greater$default$2").invoke(Adapter)
res9: Object = 8080
, , .. . @Sparko .
: methodName + "$default$" + parameterNumber. , , , "<init> ". , , , "$ lessinit $" "$ lessinit $ $default $0" .