tag:blogger.com,1999:blog-10760673.post3876262373899342471..comments2024-03-12T22:41:49.181-07:00Comments on smallwig: Value objects WTF!!?!!2!Kevin Bourrillionhttp://www.blogger.com/profile/06900822537110311228noreply@blogger.comBlogger20125tag:blogger.com,1999:blog-10760673.post-85000045495434349922021-05-26T05:57:57.682-07:002021-05-26T05:57:57.682-07:00دانلود آهنگ عاشقانه
رضا بهرام
شهاب مظفری<a title="دانلود آهنگ عاشقانه" href="https://www.myeasymusic.ir/tag/%d8%af%d8%a7%d9%86%d9%84%d9%88%d8%af-%d8%a2%d9%87%d9%86%da%af-%d8%b9%d8%a7%d8%b4%d9%82%d8%a7%d9%86%d9%87/" rel="nofollow">دانلود آهنگ عاشقانه</a><br /><br /><a title="رضا بهرام" href="https://www.myeasymusic.ir/tag/%d8%b1%d8%b6%d8%a7-%d8%a8%d9%87%d8%b1%d8%a7%d9%85/" rel="nofollow">رضا بهرام</a><br /><br /><a href="https://www.myeasymusic.ir/tag/%d8%b4%d9%87%d8%a7%d8%a8-%d9%85%d8%b8%d9%81%d8%b1%db%8c/" title="شهاب مظفری" rel="nofollow">شهاب مظفری</a><br />Johnhttps://www.blogger.com/profile/11382859797793327160noreply@blogger.comtag:blogger.com,1999:blog-10760673.post-42877090221003835982020-09-09T07:36:56.080-07:002020-09-09T07:36:56.080-07:00Happy Friday
Download PES 2020 apk + data obb o...<a href="https://www.bdtechsupport.com/2020/09/happy-friday.html" rel="nofollow">Happy Friday</a> <br> <br /><a href="https://www.bdtechsupport.com/2020/09/download-pes-2020-apk-data-obb-offline-ppsspp.html" rel="nofollow">Download PES 2020 apk + data obb offline ppsspp</a> <br> <br /><a href="https://linkshortner.net" rel="nofollow">Best Link Shortner</a> <br> <br /><a href="apkpuren.com" rel="nofollow">ApkPuren</a><br> <br />Techno Nayanhttps://www.blogger.com/profile/05227561181399884375noreply@blogger.comtag:blogger.com,1999:blog-10760673.post-70742081019085603562019-07-23T11:04:08.671-07:002019-07-23T11:04:08.671-07:00All the points you described so beautiful. Every t...All the points you described so beautiful. Every time i read your i blog and i am so surprised that how you can write so well.<a href="https://friendshipquotesn.blogspot.com/" rel="nofollow">Download Best Friendship quotes for your best Friends</a>Sunny Leonehttps://www.blogger.com/profile/10686030354183712966noreply@blogger.comtag:blogger.com,1999:blog-10760673.post-57844673355076480892019-07-23T08:28:24.272-07:002019-07-23T08:28:24.272-07:00Download All Technical Sagar courses Free
Download...<a href="https://technicalsagarcourse.blogspot.com/" rel="nofollow">Download All Technical Sagar courses Free</a><br /><a href="https://technicalsagarcourse.blogspot.com/" rel="nofollow">Download All Technical Sagar courses Free</a><br /><a href="https://technicalsagarcourse.blogspot.com/" rel="nofollow">Download All Technical Sagar courses Free</a><br /><a href="https://technicalsagarcourse.blogspot.com/" rel="nofollow">Download All Technical Sagar courses Free</a><br /><a href="https://technicalsagarcourse.blogspot.com/" rel="nofollow">Download All Technical Sagar courses Free</a><br /><a href="https://technicalsagarcourse.blogspot.com/" rel="nofollow">Download All Technical Sagar courses Free</a>Sunny Leonehttps://www.blogger.com/profile/10686030354183712966noreply@blogger.comtag:blogger.com,1999:blog-10760673.post-18918778698950167472013-11-01T01:32:43.707-07:002013-11-01T01:32:43.707-07:00Your blog is so excellent that I like it very much...Your blog is so excellent that I like it very much, you must be good at writing.<br /><br /><a href="http://www.onlinemarket360.com/products/Asus-%252d-15.6%22-Laptop-%252d-4GB-Memory-%252d-500GB-Hard-Drive-%252d-IMR-Matte-Dark-Brown-Suit-%28K53E%252dBBR21%29.html" title="Asus - 15.6" rel="nofollow">Asus - 15.6" Laptop - 4GB Memory - 500GB Hard Drive - IMR Matte Dark Brown Suit (K53E-BBR21)</a><br><br /><a href="http://www.onlinemarket360.com/products/Asus-%252d-15.6%22-Laptop-%252d-4GB-Memory-%252d-500GB-Hard-Drive-%252d-IMR-Matte-Dark-Brown-Suit-%28K53E%252dBBR19%29.html" title="Asus - 15.6" rel="nofollow">Asus - 15.6" Laptop - 4GB Memory - 500GB Hard Drive - IMR Matte Dark Brown Suit (K53E-BBR19)</a><br><br />Anonymoushttps://www.blogger.com/profile/03544003491166166039noreply@blogger.comtag:blogger.com,1999:blog-10760673.post-18919651668294147442012-12-10T05:44:27.211-08:002012-12-10T05:44:27.211-08:00mulberry
Mulberry Alexa Bag
Mulberry Bayswater B...<a href="http://www.mulberrybagz.com/" rel="nofollow"> mulberry </a> <br /><a href="http://www.mulberrybagz.com/categories/Mulberry-Alexa-Bags/" rel="nofollow">Mulberry Alexa Bag</a><br /><a href="http://www.mulberrybagz.com/categories/Mulberry-Bayswater-Bags/" rel="nofollow">Mulberry Bayswater Bags</a><br /><a href="http://www.mulberrybagz.com/categories/Mulberry-Briefcases-Bags/" rel="nofollow">Mulberry Briefcases Bags</a><br /><a href="http://www.mulberrybagz.com/categories/Mulberry-Roxanne-Bags/" rel="nofollow">Mulberry Roxanne Bags</a><br /><a href="http://www.mulberrybagz.com/categories/Mulberry-Somerset-Bags/" rel="nofollow">Mulberry Somerset Bags</a>Anonymoushttps://www.blogger.com/profile/00580047006271947889noreply@blogger.comtag:blogger.com,1999:blog-10760673.post-41517774237017669242010-10-28T17:36:12.606-07:002010-10-28T17:36:12.606-07:00Other ways to unlock trapped cash thomas sabo is i...Other ways to unlock trapped cash <a href="http://www.thomasabos.com/" rel="nofollow"><strong>thomas sabo</strong></a> is in the form of selling <a href="http://www.thomasabos.com/" rel="nofollow"><strong>thomas sabo shop</strong></a> silverware, silver flatware, sterling silver <a href="http://www.thomasabos.com/" rel="nofollow"><strong>thomas sabo jewellery</strong></a> and scrap silver. Each of these <a href="http://www.thomasabos.com/" rel="nofollow"><strong>thomas sabo schmuck</strong></a> will fetch different values depending on <a href="http://www.thomasabos.com/" rel="nofollow"><strong>charm club thomas sabo</strong></a> the product and purity factors. <a href="http://www.thomasabos.com/" rel="nofollow"><strong>sabo charm club</strong></a> With the current economic condition, selling <a href="http://www.thomasabos.com/" rel="nofollow"><strong>thomas sabo 2010</strong></a> precious metals, either pure or scrap, has gained <a href="http://www.thomasabos.com/" rel="nofollow"><strong>thomas sabo sales</strong></a> a lot of importance since it <a href="http://www.thomasabos.com/" rel="nofollow"><strong>thomas sabo reduziert</strong></a> has great intrinsic value attached to it and selling the scrap is one of the smartest ways of making money.tpjewelryhttps://www.blogger.com/profile/01821868062544193334noreply@blogger.comtag:blogger.com,1999:blog-10760673.post-90272484108745817542010-07-04T21:01:30.487-07:002010-07-04T21:01:30.487-07:00Dell Inspiron 600m battery
Dell Inspiron 8100 Batt...<a href="http://www.u-battery.ca/battery.php/Dell-Inspiron-600m-Series-977" rel="nofollow">Dell Inspiron 600m battery</a><br /><a href="http://www.u-battery.ca/battery.php/Dell-Inspiron-8100-23004" rel="nofollow">Dell Inspiron 8100 Battery</a><br /><a href="http://www.u-battery.ca/battery.php/Dell-Y9943-35592" rel="nofollow">Dell Y9943 battery</a><br /><a href="http://www.u-battery.ca/battery.php/Dell-Inspiron-1521-93643" rel="nofollow">Dell Inspiron 1521 battery</a><br /><a href="http://www.u-battery.ca/battery.php/Dell-Inspiron-510m-11541" rel="nofollow">Dell Inspiron 510m battery</a><br /><a href="http://www.u-battery.ca/battery.php/Dell-Latitude-D500-Series-998" rel="nofollow">Dell Latitude D500 battery</a><br /><a href="http://www.u-battery.ca/battery.php/Dell-Latitude-D520-32645" rel="nofollow">Dell Latitude D520 battery</a><br /><a href="http://www.u-battery.ca/battery.php/Dell-GD761-92703" rel="nofollow">Dell GD761 battery</a><br /><a href="http://www.u-battery.ca/battery.php/Dell-NF343-72724" rel="nofollow">Dell NF343 battery</a><br /><a href="http://www.u-battery.ca/battery.php/Dell-D5318-16652" rel="nofollow">Dell D5318 battery</a><br /><a href="http://www.u-battery.ca/battery.php/Dell-G5260-16654" rel="nofollow">Dell G5260 battery</a><br /><a href="http://www.u-battery.ca/battery.php/Dell-Inspiron-9200-16657" rel="nofollow">Dell Inspiron 9200 battery</a><br /><a href="http://www.u-battery.ca/battery.php/Dell-Latitude-C500-109069" rel="nofollow">Dell Latitude C500 battery</a><br /><a href="http://www.u-battery.ca/battery.php/Dell-HD438-49727" rel="nofollow">Dell HD438 Battery</a><br /><a href="http://www.u-battery.ca/battery.php/Dell-GK479-93634" rel="nofollow">Dell GK479 battery</a><br /><a href="http://www.u-battery.ca/battery.php/Dell-PC764-72683" rel="nofollow">Dell PC764 battery</a><br /><a href="http://www.u-battery.ca/battery.php/Dell-KD476-92717" rel="nofollow">Dell KD476 Battery</a><br /><a href="http://www.u-battery.ca/battery.php/Dell-Inspiron-1150-40288" rel="nofollow">Dell Inspiron 1150 battery</a><br /><a href="http://www.u-battery.ca/battery.php/Dell-Inspiron-8500-Series-8880" rel="nofollow">Dell inspiron 8500 battery</a><br /><a href="http://www.u-battery.ca/battery.php/Dell-Inspiron-4100-23002" rel="nofollow">Dell Inspiron 4100 battery</a><br /><a href="http://www.u-battery.ca/battery.php/Dell-Inspiron-4000-23001" rel="nofollow">Dell Inspiron 4000 battery</a><br /><a href="http://www.u-battery.ca/battery.php/Dell-Inspiron-8200-23005" rel="nofollow">Dell Inspiron 8200 battery</a><br /><a href="http://www.u-battery.ca/battery.php/Dell-FK890-94410" rel="nofollow">Dell FK890 battery</a><br /><a href="http://www.u-battery.ca/battery.php/Dell-Inspiron-1721-93645" rel="nofollow">Dell Inspiron 1721 battery</a><br /><br /><a href="http://www.u-battery.ca/battery.php/Dell-Inspiron-1300-49734" rel="nofollow">Dell Inspiron 1300 Battery</a><br /><a href="http://www.u-battery.ca/battery.php/Dell-Inspiron-1520-93642" rel="nofollow">Dell Inspiron 1520 Battery</a><br /><a href="http://www.u-battery.ca/battery.php/Dell-Latitude-D600-Series-999" rel="nofollow">Dell Latitude D600 Battery</a><br /><a href="http://www.u-battery.ca/battery.php/Dell-XPS-M1330-92762" rel="nofollow">Dell XPS M1330 battery</a><br /><a href="http://www.u-battery.ca/battery.php/Dell-Latitude-D531N-85350" rel="nofollow">Dell Latitude D531N Battery</a><br /><a href="http://www.u-battery.ca/battery.php/Dell-Inspiron-6000-16656" rel="nofollow">Dell INSPIRON 6000 battery</a><br /><a href="http://www.u-battery.ca/battery.php/Dell-Inspiron-6400-92713" rel="nofollow">Dell INSPIRON 6400 Battery</a><br /><a href="http://www.u-battery.ca/battery.php/Dell-Inspiron-9300-29539" rel="nofollow">Dell Inspiron 9300 battery</a>combattery84https://www.blogger.com/profile/15602322321900399271noreply@blogger.comtag:blogger.com,1999:blog-10760673.post-5766964249386938192010-06-28T14:57:41.932-07:002010-06-28T14:57:41.932-07:00Oh, forgot to ask, if this is an immutable object,...Oh, forgot to ask, if this is an immutable object, is there really a need to make the member fields private with getters?sneksehttps://www.blogger.com/profile/15121253025671052849noreply@blogger.comtag:blogger.com,1999:blog-10760673.post-64574808811623944502010-06-28T14:55:57.332-07:002010-06-28T14:55:57.332-07:00Where's "Value objects WTF!!?!!3!"?Where's "Value objects WTF!!?!!3!"?sneksehttps://www.blogger.com/profile/15121253025671052849noreply@blogger.comtag:blogger.com,1999:blog-10760673.post-15134847212322968782008-08-13T15:56:00.000-07:002008-08-13T15:56:00.000-07:00I usually write a lot of code as it is in yours ex...I usually write a lot of code as it is in yours example and never thought about shortening it a little bit...<BR/><BR/>Here is the idea i had while reading this post:<BR/><BR/>interface Foo {<BR/> String getText();<BR/> Integer getNumber();<BR/>}<BR/><BR/>Foo instance = ValueObject.create(Foo.class, ...);<BR/><BR/>where "..." are the initial values for thoose two fields.<BR/><BR/><BR/>ValueObjects.create() is a static factory method that manages map of implementations for different value objects. I think value objects can be implemented using dynamic proxy that accesses the array of values.<BR/>array of values has the types populated from return types of the methods of interface using reflection.<BR/><BR/>You can add 6 section called "David Blane and dynamic proxies"lifecoderhttps://www.blogger.com/profile/10326279850463849125noreply@blogger.comtag:blogger.com,1999:blog-10760673.post-30233467137982504962008-06-17T06:26:00.000-07:002008-06-17T06:26:00.000-07:00I'm new to your blog and have been looking through...I'm new to your blog and have been looking through your past posts. Now I'm wondering if you're ever going to post the promised part 3 of this series?Doug Clintonhttps://www.blogger.com/profile/12989136754671259934noreply@blogger.comtag:blogger.com,1999:blog-10760673.post-62884716653430909192008-04-21T19:57:00.000-07:002008-04-21T19:57:00.000-07:00Immediately after I read this, I bookmarked it — n...Immediately after I read this, I bookmarked it — now, when I find myself frustrated with Java, I read this blog post. For some perverse reason, reliving your frustration gives me great joy and serenity, especially when I reach your priceless "f-bombs".<BR/><BR/>Thank you for unselfishly releasing a little more Schadenfreude into the world, Kevin!Jordanhttps://www.blogger.com/profile/08822986706745964096noreply@blogger.comtag:blogger.com,1999:blog-10760673.post-72208882216640509262007-12-29T07:00:00.000-08:002007-12-29T07:00:00.000-08:00Yep, I think that "Declarative object identity" co...Yep, I think that "Declarative object identity" could be implemented with annotations + bytecode manipulation + some lib (might be extension of lib that mentioned in prev post)Anonymoushttps://www.blogger.com/profile/01127617543560899765noreply@blogger.comtag:blogger.com,1999:blog-10760673.post-41319621460566383542007-11-13T10:18:00.000-08:002007-11-13T10:18:00.000-08:00Great rant. Not sure what Kevin has in mind, but h...Great rant. Not sure what Kevin has in mind, but here's my solution:<BR/><BR/>http://javablog.co.uk/2007/11/05/equality/<BR/><BR/>Uses annotations, reflection and sanity.Daniel Wintersteinhttps://www.blogger.com/profile/01100168408709296559noreply@blogger.comtag:blogger.com,1999:blog-10760673.post-44719750640455688732007-11-09T17:38:00.000-08:002007-11-09T17:38:00.000-08:00I just did this large completely evil thing (reusa...I just did this large completely evil thing (reusable) (use with static import Tuples.*;)<BR/>package util;<BR/><BR/>import java.io.Serializable;<BR/><BR/>/**<BR/> * Type safe, inmutable, tuple classes<BR/> * can be serialized with xmlencoder (>=1.6)<BR/> * or objectoutputstream<BR/> * @author i30817<BR/> */<BR/>public final class Tuples {<BR/><BR/> private Tuples() {<BR/> }<BR/><BR/> public static class T1 X implements Serializable {<BR/><BR/> private static final long serialVersionUID = 262498860763181265L;<BR/> private X first;<BR/> <BR/> @java.beans.ConstructorProperties({"first"})<BR/> public T1(X first) {<BR/> this.first = first;<BR/> }<BR/><BR/> public X getFirst() {<BR/> return first;<BR/> }<BR/><BR/> @Override<BR/> public String toString() {<BR/> return "(" + first.toString() + ")";<BR/> }<BR/><BR/> @Override<BR/> public int hashCode() {<BR/> final int PRIME = 31;<BR/> int result = 1;<BR/> result = PRIME * result + ((first == null) ? 0 : first.hashCode());<BR/> return result;<BR/> }<BR/><BR/> @Override<BR/> public boolean equals(Object obj) {<BR/> if (this == obj) {<BR/> return true;<BR/> }<BR/> if (obj == null) {<BR/> return false;<BR/> }<BR/> if (getClass() != obj.getClass()) {<BR/> return false;<BR/> }<BR/> final T1 other = (T1) obj;<BR/> if (first == null) {<BR/> if (other.first != null) {<BR/> return false;<BR/> }<BR/> } else if (!first.equals(other.first)) {<BR/> return false;<BR/> }<BR/> return true;<BR/> }<BR/> }<BR/><BR/> public static class T2 X, Y implements Serializable {<BR/><BR/> private static final long serialVersionUID = 363498820763161265L;<BR/> private X first;<BR/> private Y second;<BR/><BR/> @java.beans.ConstructorProperties({"first","second"})<BR/> public T2(X first, Y second) {<BR/> this.first = first;<BR/> this.second = second;<BR/> }<BR/><BR/> public X getFirst() {<BR/> return first;<BR/> }<BR/><BR/> public Y getSecond() {<BR/> return second;<BR/> }<BR/><BR/> @Override<BR/> public String toString() {<BR/> return "(" + first.toString() + ", " + second.toString() + ")";<BR/> }<BR/><BR/> @Override<BR/> public int hashCode() {<BR/> final int PRIME = 31;<BR/> int result = 1;<BR/> result = PRIME * result + ((first == null) ? 0 : first.hashCode());<BR/> result = PRIME * result + ((second == null) ? 0 : second.hashCode());<BR/> return result;<BR/> }<BR/><BR/> @Override<BR/> public boolean equals(Object obj) {<BR/> if (this == obj) {<BR/> return true;<BR/> }<BR/> if (obj == null) {<BR/> return false;<BR/> }<BR/> if (getClass() != obj.getClass()) {<BR/> return false;<BR/> }<BR/> final T2 other = (T2) obj;<BR/> if (first == null) {<BR/> if (other.first != null) {<BR/> return false;<BR/> }<BR/> } else if (!first.equals(other.first)) {<BR/> return false;<BR/> }<BR/> if (second == null) {<BR/> if (other.second != null) {<BR/> return false;<BR/> }<BR/> } else if (!second.equals(other.second)) {<BR/> return false;<BR/> }<BR/> return true;<BR/> }<BR/> }<BR/><BR/> public static class T3 X, Y, Z implements Serializable {<BR/><BR/> private static final long serialVersionUID = 162498830763181765L;<BR/> private X first;<BR/> private Y second;<BR/> private Z third;<BR/><BR/> @java.beans.ConstructorProperties({"first","second","third"})<BR/> public T3(X first, Y second, Z third) {<BR/> this.first = first;<BR/> this.second = second;<BR/> this.third = third;<BR/> }<BR/><BR/> public X getFirst() {<BR/> return first;<BR/> }<BR/><BR/> public Y getSecond() {<BR/> return second;<BR/> }<BR/><BR/> public Z getThird() {<BR/> return third;<BR/> }<BR/> <BR/> @Override<BR/> public String toString() {<BR/> return "(" + first.toString() + ", " + second.toString() + ", " + third.toString() + ")";<BR/> }<BR/><BR/> @Override<BR/> public int hashCode() {<BR/> final int PRIME = 31;<BR/> int result = 1;<BR/> result = PRIME * result + ((first == null) ? 0 : first.hashCode());<BR/> result = PRIME * result + ((second == null) ? 0 : second.hashCode());<BR/> result = PRIME * result + ((third == null) ? 0 : third.hashCode());<BR/> return result;<BR/> }<BR/><BR/> @Override<BR/> public boolean equals(Object obj) {<BR/> if (this == obj) {<BR/> return true;<BR/> }<BR/> if (obj == null) {<BR/> return false;<BR/> }<BR/> if (getClass() != obj.getClass()) {<BR/> return false;<BR/> }<BR/> final T3 other = (T3) obj;<BR/> if (first == null) {<BR/> if (other.first != null) {<BR/> return false;<BR/> }<BR/> } else if (!first.equals(other.first)) {<BR/> return false;<BR/> }<BR/> if (second == null) {<BR/> if (other.second != null) {<BR/> return false;<BR/> }<BR/> } else if (!second.equals(other.second)) {<BR/> return false;<BR/> }<BR/> if (third == null) {<BR/> if (other.third != null) {<BR/> return false;<BR/> }<BR/> } else if (!third.equals(other.third)) {<BR/> return false;<BR/> }<BR/> return true;<BR/> }<BR/> }<BR/>}Paulo Fariahttps://www.blogger.com/profile/02374231047153225371noreply@blogger.comtag:blogger.com,1999:blog-10760673.post-17684190296549930322007-10-29T21:18:00.000-07:002007-10-29T21:18:00.000-07:00Java equality semantics are evil anyway. You can'...Java equality semantics are evil anyway. You can't possibly get a subclassed equals method right. Don't even try! <A HREF="http://domino.research.ibm.com/comm/research_people.nsf/pages/tip.ecoop2007.html/$FILE/ecoop2007.pdf" REL="nofollow">Declarative object identity</A> for the win!Rob Jellinghaushttps://www.blogger.com/profile/18279998727078480190noreply@blogger.comtag:blogger.com,1999:blog-10760673.post-85305776449727447822007-10-27T17:51:00.000-07:002007-10-27T17:51:00.000-07:00Channelling Steve Yegge?Channelling Steve Yegge?Brian Slesinskyhttps://www.blogger.com/profile/06578159790743176316noreply@blogger.comtag:blogger.com,1999:blog-10760673.post-63561396582570296352007-10-26T05:54:00.000-07:002007-10-26T05:54:00.000-07:00How the f*ck do you write "EricIsCool" in Hex? Hel...How the f*ck do you write "EricIsCool" in Hex? Help! (see, it's ok if I use that asterisk...think of the children)Anonymoushttps://www.blogger.com/profile/15749195880217321441noreply@blogger.comtag:blogger.com,1999:blog-10760673.post-79056626048794351062007-10-26T02:17:00.000-07:002007-10-26T02:17:00.000-07:00Another one for your list - repetitive code genera...Another one for your list - repetitive code generation. We have a tool that will generate the get/set/equals/hashcode/clone/property methods for you based on just the field definitions. And if you change the field definitions, it rewrites all the generated methods, so its not just dead code from a template.<BR/><BR/>(property methods allow many of the features of the big property debate, but mostly they allow access to fields without reflection enabling object to XML, XML to object and XPath querying of objects)Stephen Colebournehttps://www.blogger.com/profile/01454237967846880639noreply@blogger.com