{"blog_title":"voidy21\u306e\u65e5\u8a18","author_url":"https://blog.hatena.ne.jp/voidy21/","html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Fvoidy21.hatenablog.jp%2Fentry%2F20110626%2F1309059043\" title=\"\u7dcf\u79f0\u578b\u304b\u3089\u672c\u5f53\u306e\u578b\u3092\u53d6\u5f97\u3057\u305f\u3044 - voidy21\u306e\u65e5\u8a18\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>","title":"\u7dcf\u79f0\u578b\u304b\u3089\u672c\u5f53\u306e\u578b\u3092\u53d6\u5f97\u3057\u305f\u3044","height":"190","url":"https://voidy21.hatenablog.jp/entry/20110626/1309059043","width":"100%","provider_name":"Hatena Blog","image_url":null,"type":"rich","author_name":"voidy21","categories":["scala"],"version":"1.0","provider_url":"https://hatena.blog","blog_url":"https://voidy21.hatenablog.jp/","published":"2011-06-26 12:30:43","description":"\u3053\u308c\u3092\u53c2\u8003\u306b \u306a\u3093\u3068\u3044\u3046\u304b\u3001\u307b\u3048\u30fc package main.scala import java.lang.reflect.ParameterizedType trait G[T] { def getGenericClass: java.lang.Class[T] = { getClass().getGenericInterfaces()(0) .asInstanceOf[ParameterizedType] .getActualTypeArguments()(0) .asInstanceOf[java.lang.Class[T]] } } class A extends G[A] objec\u2026"}