看一下下面的例子:
class nul
{
public static void main (String[] args)
{
System.out.println (String.valueOf((Object)null));
System.out.println (String.valueOf(null));
}
}
Run Code Online (Sandbox Code Playgroud)
第一次println写,null但第二次抛出a NullPointerException.
为什么只有第二行值得例外?那两个nulls有什么区别?Java中是真的 null还是假 null的?
我有几个switch语句测试一个enum.enum必须通过switch语句在语句中处理所有值case.在代码重构期间,可能会发生enum收缩和增长.当enum收缩时,编译器会抛出错误.但是,如果enum增长,则不会抛出任何错误.匹配状态被遗忘并产生运行时错误.我想将此错误从运行时移动到编译时.从理论上讲,应该可以enum在编译时检测丢失的情况.有没有办法实现这个目标?
问题已经存在" 如何检测新值已添加到枚举中并且未在交换机中处理 "但它不包含仅与Eclipse相关的解决方案的答案.
我目前使用可爱的Github Pages来托管一个网站.我现在想尝试一些东西,添加内容,新脚本,......所以我有一个dev分支,我在其中执行此操作,并运行本地Web服务器来测试它.一旦我对它感到满意,我就可以将它推送到gh-pages分支进行'发布'.
但是,我现在想知道.是否可以让dev分支也可以像gh-pages分支一样在任何地方访问?这对于让其他人尝试我正在处理的新东西非常有帮助,而不必冒险向所有人发布错误的代码.所以基本上在一个仓库中有两个gh页面的网站,一个用于发布的一个版本.
这是(或类似的)Github可能吗?
我正在开发一个Java Web应用程序,它与一些随之部署的其他外部应用程序集成在一起.身份验证信息必须跨所有内容同步,其他应用程序需要针对LDAP进行身份验证.该应用程序将部署在没有其他LDAP服务器可供使用的环境中; 我必须提供它.到目前为止,我的解决方案是将Penrose Server用作独立应用程序,我将其设置为检查主应用程序数据库中的表并基于此发布LDAP.它运行良好,但有一些东西可以嵌入主应用程序本身以简化部署将是很好的.
看起来Penrose可以嵌入,但文档可能有点不稳定或过时(虽然它似乎是积极开发的).它可能是一个可接受的解决方案,但如果有另一个已知在嵌入式配置中工作良好的我可能想要检查它.
我也担心Penrose的GPL问题.我不能自由地向GPL提供应用程序的源代码.我不认为这是独立运行它的问题,但嵌入它可能是不 - 没有人知道吗?许可许可证是好的,以避免这些问题.
要求:
到目前为止,我简要地看了一下似乎可以嵌入的ApacheDS和OpenDS.
有没有人有这种经历?
我有一个选择complexType命名abType:
<xs:complexType name="abType">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="a"/>
<xs:element name="b"/>
</xs:choice>
</xs:complexType>
Run Code Online (Sandbox Code Playgroud)
此类型可用于以任何顺序创建具有a和b节点的元素,例如:
<ab>
<b/>
<a/>
</ab>
Run Code Online (Sandbox Code Playgroud)
现在我想创建一个派生类型,调用abcType以允许节点a,b并c以任何顺序.因此我基于以下方式创建了一个新的complexType abType:
<xs:complexType name="abcType">
<xs:complexContent>
<xs:extension base="abType">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="c"/>
</xs:choice>
</xs:extension>
</xs:complexContent>
</xs:complexType>
Run Code Online (Sandbox Code Playgroud)
之后我创建了一个abc节点:
<abc>
<c/>
<b/>
<a/>
</abc>
Run Code Online (Sandbox Code Playgroud)
但是这个节点无效!放置任何a或b之后无效c.原因是,从基类型派生类型会创建一个隐含序列,尽管两种类型都是选择.XMLspy以这种方式说明了它:

这个结果对于选择类型来说是无用的.
所以我的问题是:如何在不对选择进行排序的情况下扩展选择类型?
以下是完整的XSD和用于重现问题的XML测试文件:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="root">
<xs:complexType>
<xs:sequence> …Run Code Online (Sandbox Code Playgroud) 我有一些应用程序使用的以下过程:
procedure p1
is
begin
bla bla bla;
end;
Run Code Online (Sandbox Code Playgroud)
但是没有异常处理块.因此应用程序是根据此功能编写的.
现在我需要在p1中记录错误.但它不应该影响使用此过程的应用程序.
像这样的东西:
procedure p1
is
begin
bla bla bla;
exception when others then
log_error(sqlcode, sqlerrm);
raise_new_exception (sqlcode, sqlerrm);
end;
Run Code Online (Sandbox Code Playgroud)
在raise_application_error的情况下,第一个参数应该在[-20000,-20999]范围内.因此,如果引发异常no_data_found,则无法引发此错误.
在exception_init的情况下,第二个参数不应该是变量.它必须是数字文字.
PS:作为临时解决方案,我正在使用execute immediate
我目前在log4j中有以下模式布局.我想将Process id添加到日志文件中.我该怎么做?
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
Run Code Online (Sandbox Code Playgroud)
粘贴样本日志消息
2011-01-07 11:48:21,940 [main] INFO Testing1
2011-01-07 11:48:21,942 [main] INFO Test.common.ApplicationProperties - Used log4j
Run Code Online (Sandbox Code Playgroud)
"log4j.properties" [Read only] 26 lines, 884 characters
log4j.rootCategory=DEBUG, stdout, A1
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Threshold=WARN
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy/MM/dd HH:mm:ss} %-5p (%c) %m%n
log4j.appender.A1=org.apache.log4j.RollingFileAppender
log4j.appender.A1.Threshold=DEBUG
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
log4j.appender.A1.File=/homw/cus/logs/ccl.02.log
log4j.appender.A1.MaxFileSize=5MB
log4j.appender.A1.MaxBackupIndex=40
log4j.category.test.common.DBConnectionPool=WARN
log4j.category.test.common.DataBaseHandler=WARN
log4j.category.test.cttg.tables=WARN
log4j.category.test.middleware.tables=WARN
log4j.logger.org.apache.axis=ERROR
log4j.logger.org.apache.catalina=ERROR
Run Code Online (Sandbox Code Playgroud) 这篇博客解释说,sys_guid()每个系统的输出都不是随机的:
http://feuerthoughts.blogspot.de/2006/02/watch-out-for-sequential-oracle-guids.html
不幸的是我必须使用这样的系统.
如何确保获得随机UUID?有可能sys_guid()吗?如果不是如何在Oracle上可靠地获取随机UUID?
我有以下课程:
class Pair
{
String car;
Integer cdr;
public Pair () {}
public Pair (String car) { this.car = car; }
public Pair (Integer cdr) { this.cdr = cdr; }
public Pair (String car, Integer cdr)
{
this(car);
this(cdr);
}
}
Run Code Online (Sandbox Code Playgroud)
该类包含两个可选值,我想提供所有可能的构造函数排列.第一个版本不初始化任何内容,第二个版本仅初始化第一个值,第三个版本仅初始化第二个值.
最后一个构造函数是第二个和第三个的组合.但是不可能把它写下来,因为代码失败了.
constructor.java:13: call to this must be first statement in constructor
this(cdr);
^
1 error
是否可以编写最后一个没有任何代码冗余的构造函数(也没有调用相同的setter方法)?
Go没有工会.但工会在许多地方都是必要的.XML过度使用了联合或选择类型.我试图找出,这是解决失踪工会的首选方法.作为一个例子,我尝试Misc在XML标准中为非终端编写Go代码,该代码可以是注释,处理指令或空格.
编写三种基本类型的代码非常简单.它们映射到字符数组和结构.
type Comment Chars
type ProcessingInstruction struct {
Target *Chars
Data *Chars
}
type WhiteSpace Chars
Run Code Online (Sandbox Code Playgroud)
但是当我完成联合的代码时,它会因为许多冗余函数而变得非常繁琐.显然必须有一个容器结构.
type Misc struct {
value interface {}
}
Run Code Online (Sandbox Code Playgroud)
为了确保容器只保存三个允许的类型,我将值设为私有,并且我必须为每个类型编写一个构造函数.
func MiscComment(c *Comment) *Misc {
return &Misc{c}
}
func MiscProcessingInstruction (pi *ProcessingInstruction) *Misc {
return &Misc{pi}
}
func MiscWhiteSpace (ws *WhiteSpace) *Misc {
return &Misc{ws}
}
Run Code Online (Sandbox Code Playgroud)
为了能够测试union的内容,有必要编写三个谓词:
func (m Misc) IsComment () bool {
_, itis := m.value.(*Comment)
return itis
}
func …Run Code Online (Sandbox Code Playgroud)