作者zanyking (遥远的旅人)
看板java
标题Re: [问题] class变数存取问题
时间Wed Mar 15 23:18:31 2006
※ 引述《PsMonkey (痞子军团团长)》之铭言:
: 请注意一下,Comparator 没有要 "给谁用"
: 他只是提供一个方便抽换的方法
: TreeSet 也好,Arrays.sort 也好
: 不提供 Comparator 可不可以? 当然可以...
: 运作起来依然正常...
: 只要里头的物件都有 implement Comparable 就好
: 没有也没关系,大不了丢出 ClassCastException
: (就算你给他 Comparator,一样还是可能出现 ClassCastException 阿)
我说一下我的干过的事情好了。
Comparator可以做出怎样的好事来呢?
...简单的虚拟码:
int compare(Object o1, Object o2)
{
class1 = o1.getClass();
class2 = o2.getClass();
//Reflection operation...
int o1MethodWeight = this.matchMethodsWeight(class1,"set*:string,int");
int o2MethodWeight = this.matchMethodsWeight(class2,"set*:string,int");
if(o1MethodWeight>o2MethodWeight)reutrn 1;
if(o1MethodWeight==o2MethodWeight)reutrn 0;
if(o1MethodWeight<o2MethodWeight)reutrn -1;
}
所以,我是需要自己实做一个container并且对内部的DynamicProxyObject
作Pooling,同时我需要一个物件资源耗费可能性的指标,以方便排序後其
他部分有比较好的轮询策略。
但问题来了,我不想作一堆的helper Object去持有ProxyObject,然後在内
部计算这样很浪费资源。同时我也希望put进去的Proxy可以快乐的自己对号
入座。
可是,Dynamic Proxy Object是byteCode程式码产生器产生出来Load到
ClassLoader里头的,它implement的interface是Deployment Discripter定
义的,我只能执行期去侦测它,而不能预先知道。
於是我想出这种办法,这个方法是假设:
拥有符合给定pattern方法越多的,资源耗费越大。
PS:上面的例子是方便说明,实际传入的pattern是个其他物件。
: 这句话又是什麽意思 T__T
: : 没实做不知道 XD
: [举手] 不同型之间为什麽要让他们比较? ==.==
: 如果你要讨论可不可行... 那... 一定可行的
: 你的 toString() 硬干法就是经典
: 问题是... 为什麽要这麽作? T___T
这世上需要干蠢事的人很多...
我算是一个。
--
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 210.85.116.116
1F:推 PsMonkey:这篇 m 了也不知道该往哪里丢 .... XD 03/16 00:29