KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I've been wondering whether transparent implicit conversions are really such a good idea and whether it might actually be better to use implicits more, um, explicitly . For example, suppose I have a method which accepts a Date as a parameter and I have an implicit conversion which turns a String into a Date : implicit def str2date(s: String) : Date = new SimpleDateFormat("yyyyMMdd").parse(s) private def foo(d: Date) Then obviously I can call this with a transparent implicit conversion: foo("20090910") Would it be better to make the fact that I am converting the string into a date more explicit? class DateString(val s: String) { def toDate : Date = new SimpleDateFormat("yyyyMMdd").parse(s) } implicit def str2datestr(s: String) : DateString = new DateString(s) So then the usage looks more like: foo("20090910".toDate) The advantage of this is that it is clearer later on what is happening - I've been caught out a few times now by transparent implicit conversions I should know about ( Option to Iterable anyone?) and this usage still allows us to take advantage of the power of implicit s.
Tags (comma-separated)
Save Edits
Cancel