例如,如果我希望为java.util.Map的所有实例注册一个Converter,有没有办法做到这一点:
new BeanUtilsBean().getConvertUtils().register(new MyConverter(), Map.class);
Run Code Online (Sandbox Code Playgroud)
在哪里为该MyConverter#convert()Map的任何实例调用该方法(例如HashMap)?
这背景是我正在使用BeanUtils从数据库中填充各种不同的bean.它们的一些属性是实现特定接口的枚举,为了设置它们的值,需要一个自定义例程.我希望为所讨论的接口的所有实现注册一个转换器类,但是找不到这样做的方法,所以最后必须通过检查bean中的每个属性的类来动态地执行它.注册我的转换器类,如果它们碰巧是这个接口的实例:
BeanUtilsBean b = new BeanUtilsBean();
Class< ? > propertyType = pu.getPropertyType(this, setterName);
if (isImplementationOfMyInterface(propertyType)) {
b.getConvertUtils().register(new MyConverter(), propertyType);
}
b.setProperty(this, setterName, value);
Run Code Online (Sandbox Code Playgroud)
这看起来很讨厌,我相信一定有更好的办法吗?
我是VBA的新手,但对PHP非常好.话虽这么说,我正在努力与VBA循环......
我有40行称为"SH1"的这张表:
SH1
A B C D E
1 2 One 1.0a 12
2 7 Two 2.0b 34
3 13 Three 3.0c 56
4 14 Four 4.0d 78
..
40
Run Code Online (Sandbox Code Playgroud)
我需要遍历40行并检查A列中的值.如果A列中的值符合我的条件(见下文),则生成一些输出并将其放入另一张表中.
我的输出表是3列,称为"SH2":
SH2
A B C D E
1 1.0a 12 One
2.0b 34 Two
2 3.0c 56 Three
4.0d 78 Four
..
15
Run Code Online (Sandbox Code Playgroud)
我决定什么去哪里的标准:
// First loop:
if a1 < 8, put c1 in SH2 a1, put d1 in SH2 b1, put b1 in SH2 c1
if a2 < …Run Code Online (Sandbox Code Playgroud) 好的,我使用jqgrid只显示信息的子集.
我想在导航图层中使用自定义按钮导航到用户可以输入新记录的新页面.
即我想要一个按钮(新记录",当点击时加载一个包含我的记录输入表格和代码的新页面.
我可以很好地创建bvutton,但我似乎无法找到正确的方法来调用一个加载新页面的函数.
有任何想法吗??
我的任务是从一些XML文件中整理一本书(使用XSL FO),现在我正在尝试编写本书中的数字(简单的编号,章节中没有重置或其他),我天真的方法是这样做的
<xsl:template match="figure">
<fo:block xsl:use-attribute-sets="figure">
.. stuff to deal with images ..
<fo:block xsl:use-attribute-sets="figure-caption">
Figure <xsl:number level="any"/>: <xsl:apply-templates/>
</fo:block>
<fo:block xsl:use-attribute-sets="figure-caption">
</xsl:template>
Run Code Online (Sandbox Code Playgroud)
我有一个聚合XML文件,使用这样的document()函数选择要使用的文件:
<xsl:template match="include">
<xsl:apply-templates select="document(@src)"/>
</xsl:template>
Run Code Online (Sandbox Code Playgroud)
现在,我的问题是number似乎总是只计算当前文件中的实例,这不是我想要的(目前,每个文件只有一个或两个图像,导致所有数字都是'图1'或'图2' ).
我考虑过两种方法,基本上都是两遍XSLT.首先,直截了当的方法是使用身份变换生成包含整本书的中间XML,由于其他原因我不愿意这样做.
第二,使用node-set()扩展,我试过这样的
<xsl:template match="include">
<xsl:apply-templates select="ext:node-set(document(@src))"/>
</xsl:template>
Run Code Online (Sandbox Code Playgroud)
但这产生了同样的结果.
有任何想法吗?也许某些东西不是两遍变换?任何帮助将不胜感激.
我的问题很简单我在项目中做了很多改动,我不想立即与主分支合并.在我制作这些变化时,我没有在这些变化开始时采取分支.所以现在我试图找到一种方法来分支检查我的代码,但似乎没有解决方案.我该怎么做,最好的方法是什么.我正在使用连接到TFS 2008的Visual Studio 2010.
非常感谢.
我们之前有一个从Subversion转换过的Mercurial存储库,今天已经注意到存储库中的文件没有任何历史记录.
此行为的一个症状是hg status报告文件是干净的,而hg log报告没有相同文件的更改集:
> hg clone [repo]
> hg st -c FileWithMissingHistory.cs
C FileWithMissingHistory.cs
> hg blame FileWithMissingHistory.cs
FileWithMissingHistory.cs: no such file in rev [...]
> hg log FileWithMissingHistory.cs
> hg log FileWithMissingHistory.cs -f
abort: cannot follow nonexistent file: "FileWithMissingHistory.cs"
> hg log -v | grep FileWithMissingHistory.cs
[gives output, there arechangesets mentioning the file]
Run Code Online (Sandbox Code Playgroud)
显然,示例中的文件名已更改.我尝试过使用hg验证,但是这个命令报告说repo没问题.有没有人经历过这一点,有什么我们可以做的让历史"恢复生机"?在所讨论的文件上放置虚拟历史记录是可以接受的,但不是最理想的.
编辑: 我已经做了一些调查,并注意到"FileWithMissingHistory.cs"在修订版238中从另一个文件名(hg copy + delete)重命名.如果我执行hg update -r238并且hg登录此版本的文件我做没有任何历史.在原始文件上执行hg登录会按预期报告历史记录,因此在复制过程中似乎会以某种方式丢失历史记录(同样,使用hg副本重命名文件,并且变更集清楚地表明文件已被复制).
由于使用ExecutorService可submit一个Callable任务并返回Future,为什么需要使用FutureTask包装Callable的任务和使用的方法execute?我觉得他们都做同样的事情.
使用DynamicReports开发Java EE应用程序,到目前为止对我来说已经足够了.最近我找到了DynamicJasper,我想知道它是不是更好的选择.
我可以看到DynamicReports可能有更好的支持和社区.
谢谢!
我们是否可以使用一个键和两个值来实现HashMap.就像HashMap一样?
请帮助我,还告诉(如果没有办法)任何其他方式来实现三个值的存储,其中一个作为键?
我找到了Hibernate Annotations的脚,我遇到了一个问题,我希望有人可以提供帮助.
我有2个实体,Section和ScopeTopic.Section有一个List类成员,所以一对多关系.当我运行我的单元测试时,我得到了这个异常:
使用@OneToMany或@ManyToMany定位未映射的类:com.xxx.domain.Section.scopeTopic [com.xxx.domain.ScopeTopic]
我会假设错误意味着我的ScopeTopic实体未映射到表?我看不到我做错了.以下是实体类:
@Entity
public class Section {
private Long id;
private List<ScopeTopic> scopeTopics;
public Section() {}
@Id
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
@OneToMany
@JoinTable(name = "section_scope", joinColumns = {@JoinColumn(name="section_id")},
inverseJoinColumns = {@JoinColumn(name="scope_topic_id")} )
public List<ScopeTopic> getScopeTopic() {
return scopeTopic;
}
public void setScopeTopic(List<ScopeTopic> scopeTopic) {
this.scopeTopic = scopeTopic;
}
}
Run Code Online (Sandbox Code Playgroud)
@Entity
@Table(name = "scope_topic")
public class ScopeTopic {
private Long id;
private String topic;
public …Run Code Online (Sandbox Code Playgroud)