我有一个apache web服务器,当某个用户访问某个页面时,我得到一个日志行,其时间戳不同步.
样本输出:
IP1 - - [22/Jun/2009:12:20:40 +0000] "GET URL1" 200 3490 "REFERRING_URL1" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)"
IP2 - - [22/Jun/2009:12:11:47 +0000] "GET URL2" 200 17453 "-" "Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10.5; en-US; rv:1.9.0.11) Gecko/2009060214 Firefox/3.0.11"
IP3 - - [22/Jun/2009:12:20:41 +0000] "GET URL3" 200 889 "REFERRING_URL2" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; GTB6; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; …Run Code Online (Sandbox Code Playgroud) 我想要嵌套一些枚举.我所代表的对象是Flags,有一个类型和一个值.存在离散数量的类型,并且每种类型具有一组不同的可能值.
因此,如果类型A可以具有值1,2或3,并且类型B可以具有值4,5,6,那么我希望能够执行以下操作:
Flag f = Flag.A.1;
f.getType() - returns "A"
f.getValue() - returns "1"
Flag f2 = Flag.A.4; -- Syntax error.
Run Code Online (Sandbox Code Playgroud)
我正在疯狂地尝试在枚举中嵌入枚举 - 这是我正在尝试的可能 - 我是否需要完全抛弃枚举并使用静态成员手动编写静态类?
到目前为止,我的最大努力是:
public class Flag {
enum A extends Flag {
ONE("ONE"),
TWO("TWO"),
THREE("THREE");
private A(String value) {
Flag.type = "A";
Flag.value = value;
}
}
private static String type;
private static String value;
}
Run Code Online (Sandbox Code Playgroud)
但如果我这样做:
Flag f = Flag.A.ONE;
Run Code Online (Sandbox Code Playgroud)
这些类型是不兼容的.
我有一个包含2个表的基本数据库模式; 一个是简单的ID - >文本术语列表,另一个是2列,父和子.第一个表中的ID是在db序列插入时生成的,而第二个表包含用于存储层次结构的"结构"的键之间的映射.
我的问题是我可能希望有时将树从一个数据库移动到另一个数据库.如果我有2个DB,每个有10个术语(数据库A的术语!=数据库B的术语,并且没有重叠),我只是将数据从A复制到B然后我会遇到一个明显的问题,即术语将是重新编号,但关系不会.显然在这个例子中,只需在所有关系键上添加10就可以了,但是有人知道这样做的一般算法吗?
DB是oracle 11g,oracle特定的解决方案很好......
有没有办法改变工作副本所涉及的分支?
另一个开发人员已经重新命名了分支机构,所以我不能再承诺任何工作了.
我可以编辑所有.svn目录文件以指向新位置吗?
我试图在我继承的一些Java代码中对一个类进行单元测试.
问题是它来自一个类,它是公司应用程序的一部分.在构造时,基类会执行各种"聪明"的东西,初始化与运行时所需的各种服务的连接.
但是对于单元测试目的,我不需要任何这些.我只需要创建一个派生类的实例,然后我就可以锻炼它.如果任何测试特别需要层次结构的一部分,我可以嘲笑它们.
那么我该如何打破这种依赖呢?
我希望建立一个主题图来catagorize内容.
例如,主题'艺术'可能有'艺术史','绘画','雕塑'等子类别.
我已经抓取了一些在线资源,但是我遇到了与我希望如何使用层次结构有关的问题.
我有很多内容,我希望按主题索引.因此,举一个上面的例子,如果用户搜索"艺术",那么他们不仅会得到任何提及"艺术"的东西,而且还会提到任何提到"绘画"的东西,即使它没有提到"艺术".很公平.
但是,如果在我的heirarchy的另一部分中,我有"House Maintenance",那么那也可能有一个"绘画"的副标题.
但是如果用户搜索"艺术",我的引擎会说'好吧,绘画是'艺术'的子类别,所以我将包含这些内容,这些内容都是最好的颜色来画你的浴室墙壁. ..
有没有人遇到过这个问题?我试过谷歌搜索,但不知道确切的术语,很难取得进展....
编辑:更简洁,"绘画"是"艺术"的副主题,但如果有关于"绘画"的内容,那么它并不一定会追随它的"艺术",因为"艺术"不是"绘画"的唯一父母.
在我的应用程序中,我使用带有自定义ThreadFactory的线程池.
我的代码看起来像:
pool = Executors.newScheduledThreadPool(10, new TF());
class TF implements ThreadFactory {
AtomicInteger count = new AtomicInteger(1);
public synchronized Thread newThread(Runnable r) {
Thread t = new Thread(r) ;
t.setName("ThreadPool Thread[" + count.getAndIncrement() + "]");
t.setUncaughtExceptionHandler(new UEHLogger());
return t;
}
}
Run Code Online (Sandbox Code Playgroud)
但是,在向线程池提交各种Runnables后,如果我转储当前线程(来自IDE,Intellij IDEA),我得到:
"ThreadPool Thread[1]" daemon prio=6 tid=0x0334e000 nid=0x1130 waiting on condition [0x0377f000..0x0377fc94]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x22fa7838> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1925)
at java.util.concurrent.DelayQueue.take(DelayQueue.java:160)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:583)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:576)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
at …Run Code Online (Sandbox Code Playgroud) 我有一个Java枚举,表示给定字段的潜在值,以及用于标识该值的唯一标识符:
public enum MyEnum {
TYPEA("A"),
TYPEB("B")
private String code;
private MyEnum(String code){
this.code = code;
}
public String getCode(){
return code;
}
}
Run Code Online (Sandbox Code Playgroud)
我想添加自定义比较器:
public boolean equals(String code){
return getCode().equals(code);
}
Run Code Online (Sandbox Code Playgroud)
这将允许我将我的枚举与字符串进行比较.
我有什么缺陷吗?我看不出任何明显的错误......
我刚刚在这里阅读了这篇文章:http://hamletdarcy.blogspot.com/2008/04/10-best-idea-inspections-youre-not.html,最后一点让我想到了我的代码,特别是建议:
世界上有什么公共方法对你的对象做了什么,它不依赖于对象中的任何字段?这肯定是代码味道.问题是检查的"自动修复"是应用static关键字.真是没有.这不是你想要做的.不依赖于对象状态的公共方法不可能是具有明确声明的章程的对象的一部分.它只是没有凝聚力,应该放在其他地方.所以:如果方法是私有的,接受自动修复,但如果方法是公共的,则不要.
有问题的代码本质上是一个对象变换器.它需要一个A类型的对象并将其转换为另一种类型.
我的层次结构是这样的:
接口ObjectTransformer - > GenericObjectTransformer
然后在这下面,GenericObjectTransformer由ObjectTransformerA和ObjectTransformerB扩展
现在,ObjectTransformerA和ObjectTransformerB都需要一些功能,但实际上并不依赖于GenericObjectTransformer的任何实例变量,因此它是GenericObjectTransformer中受保护的静态方法.
这违反了上述规则吗?显然这是受保护的而不是公开的,但它仍然是一种可以从类外部访问的方法,与类本身无关?
有什么想法吗?
我有一组测试测试一些与timzeone相关的功能
我有一个Before方法,它将默认时区设置为我选择的一个,以及一个after方法,它恢复测试前的默认值.
所以我基本上想做
将时区设置为UTC
运行测试
恢复时区
将时区设置为EST
运行测试
恢复时区
将时区设置为JST
运行测试
恢复时区
每种情况下的测试都是相同的.
是否有捷径可寻?
我使用具有以下方法的第三方类:
public void print(PrintStream s);
Run Code Online (Sandbox Code Playgroud)
但我想要做的是实际记录输出.就像是:
RecordingPrintStream p = new RecordingPrintStream
instance.print(p);
logger.log(p.getContents());
Run Code Online (Sandbox Code Playgroud)
那么我可以用什么作为我的RecordingPrintStream呢?
是$ var ="UseCountry = 1 UseCountryDefault = 1 UseState = 1 UseStateDefault = 1 UseLocality = 1 UseLocalityDefault = 1 cantidad_productos = 5 expireDays = 5 apikey = ABQIAAAAFHktBEXrHnX108wOdzd3aBTupK1kJuoJNBHuh0laPBvYXhjzZxR0qkeXcGC_0Dxf4UMhkR7ZNb04dQ DISTANCIA = 15 AutoCoord = 1 user_add_locality = 0 SaveContactForm = 0 ShowVoteRating = 0 Listlayout = 0 WidthThumbs = 100 HeightThumbs = 75 WidthImage = 640 HeightImage = 480 ShowImagesSystem = 1 ShowOrderBy = 0 ShowOrderByDefault = 0 ShowOrderDefault = DESC SimbolPrice = $ PositionPrice = 0 FormatPrice = 0 …
java ×7
enums ×2
apache ×1
database ×1
export ×1
inheritance ×1
junit ×1
php ×1
static ×1
string ×1
svn ×1
threadpool ×1
topic-maps ×1
unit-testing ×1