我正在使用JAXB(JDK 6中包含的版本)将对象编组为XML.以下代码会产生意外结果:
public class JAXBTest {
@XmlRootElement
public static class VIPPerson {}
public static void main(String[] args) throws JAXBException {
StringWriter sw = new StringWriter();
VIPPerson p = new VIPPerson();
JAXB.marshal(p, sw);
System.out.println(sw.toString());
}
}
Run Code Online (Sandbox Code Playgroud)
以上的输出是
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<vipPerson/>
Run Code Online (Sandbox Code Playgroud)
我希望看到类名映射到VIPPerson元素而不是vipPerson基于JAXB规范中的 8.12.1节,
类名:使用java.beans.Introspector.decapitalize(类名)通过de capitalization将类名映射到XML名称.
该decapitalize方法的JavaDoc 说明了这一点:
获取字符串并将其转换为普通Java变量名称大小写的实用方法.这通常意味着将第一个字符从大写转换为小写,但在(异常)特殊情况下,当有多个字符并且第一个和第二个字符都是大写时,我们不管它.因此,"FooBah"变为"fooBah","X"变为"x",但"URL"保持为"URL".
实施是违反规范还是我误解了什么?
是否有可能检测到某些串行端口是否被Windows上运行的另一个进程嗅探?
我们有一个应用程序可以接收一些其他人无法读取的敏感数据.因此,在打开串口之前,我们需要检查端口是否受到监控.
我们可以使用CreateFileWindows API函数打开具有独占访问权限的串行端口,但如果监视器在我们的调用之前运行,它可以读取所有通信(它打开具有共享访问权限的串行端口,因此我们可以打开端口同一时间).为避免这种情况,尝试检查端口是否受到监视并引发异常,警告用户.是否有可能做到这一点?
在Matlab中,如果A是矩阵,则sum(A)将A的列视为向量,返回每列总和的行向量.
总和(图像); 如何用OpenCV完成?
我只是想知道是否通过Kinect或Xbox 360来识别像人类和身体部位的手势这样的物体.
我有一个jar文件,在我的开发环境中提供了一些类.当我在Eclipse中调试时,当我第一次进入该jar提供的类时,Eclipse会提示我提供相关源文件的位置.我这样做,一切都很好.
一段时间后,我用更新的版本更换了jar.如何指示Eclipse在不同的位置寻找新的源代码?
我正在使用完美的PHP清理网址生成器来清理一些上传脚本的文件名(以及在其他地方清理我的永久链接).我如何修改它以允许.如果函数看起来像这样:
setlocale(LC_ALL, 'en_US.UTF8');
function toAscii($str, $replace=array(), $delimiter='-', $exception = '') {
if( !empty($replace) ) {
$str = str_replace((array)$replace, ' ', $str);
}
$clean = iconv('UTF-8', 'ASCII//TRANSLIT', $str);
$clean = preg_replace("/[^a-zA-Z0-9\/_|+ -]/", '', $clean);
$clean = strtolower(trim($clean, '-'));
$clean = preg_replace("/[\/_|+ -]+/", $delimiter, $clean);
return $clean;
}
Run Code Online (Sandbox Code Playgroud)
提前致谢.
编辑稍微修改了函数以反映我的实际用法 - 抱歉.
我正在用java编写程序.我有一个主要的JPanel,它有两个JPanel和一个Canvas.我的目标是在运行程序时调整Canvas的大小.当我最大化Canvas时,我希望它始终位于另一个组件之上.
如何为Canvas设置此属性?
在我的WPF应用程序中,我只希望在用户编辑/输入/聚焦控件之后显示验证装饰器.这样,用户有机会向该字段提供有效输入,并且只有当他们选择不这样做时,才会显示验证.
我们希望鼓励完成每个字段,以便在表单首次打开时指示必填字段可以规避,因为用户将立即倾向于完成他们需要的内容以便摆脱可能也绕过的大红色验证错误形式的流动.
有没有办法知道控件是否已关注?附属财产可能有用吗?
如果它有助于提供更具体的响应:这是我当前的验证样式,显示红色边框[如果控件有边框]和带有错误消息工具提示的小感叹号(非常标准):
<Style TargetType="Control">
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="true">
<Setter Property="ToolTip"
Value="{Binding RelativeSource={x:Static RelativeSource.Self},
Path=(Validation.Errors).CurrentItem.ErrorContent}"/>
<Setter Property="Validation.ErrorTemplate">
<Setter.Value>
<ControlTemplate>
<DockPanel LastChildFill="true">
<Image Source="../Resources/Icons/Error.ico" Margin="4" Width="15" ToolTip="{Binding ElementName=customAdorner, Path=AdornedElement.(Validation.Errors).CurrentItem.ErrorContent}" />
<AdornedElementPlaceholder Name="customAdorner" VerticalAlignment="Center" >
<Border BorderBrush="red" BorderThickness="1" Visibility="{Binding ElementName=customAdorner, Path=AdornedElement.BorderThickness, Converter={StaticResource hasBorderToVisibilityConverter}}" />
</AdornedElementPlaceholder>
</DockPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
</Trigger>
<Trigger Property="IsVisible" Value="False">
<Setter Property="Validation.ErrorTemplate" Value="{x:Null}"/>
</Trigger>
</Style.Triggers>
</Style>
Run Code Online (Sandbox Code Playgroud) var a = {
"example" : true
};
var x = [a], y = [a];
delete x[0];
console.log(y);
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,是否可以删除,而不仅仅是x中的引用?
由于一些糟糕的挑选,我的本地Git存储库目前在原点之前提交了五个提交,并且状态不佳.我想摆脱所有这些提交并重新开始.
显然,删除我的工作目录并重新克隆会这样做,但是再次从GitHub下载所有内容似乎有些过分,而且不能很好地利用我的时间.
也许git revert是我需要的,但我不希望在原点(甚至六个)之前提交10个提交,即使它确实使代码本身恢复到正确的状态.我只想假装最后半小时从未发生过.
是否有一个简单的命令可以做到这一点?这似乎是一个明显的用例,但我没有找到它的任何例子.
请注意,这个问题具体是关于提交,而不是关于: