这个问题可能看起来很愚蠢,但是,就这样吧!那时我有一个愚蠢的问题:-).好吧,我的问题是:使用此代码
//PDF generation
PdfWriter.getInstance(document,
new FileOutputStream("PDFFile.pdf"));
//RTF generation
RtfWriter2.getInstance(document,
new FileOutputStream("RTFFile.rtf"));
//HTM generation
HtmlWriter.getInstance(document,
new FileOutputStream("HTMLFile.htm"));
Run Code Online (Sandbox Code Playgroud)
使用iText 2.1.7版本(和其他一些行),每个计算机爱好者都能够从他的Java代码生成PDF,RTF或HTM文件格式的文件.现在,我已将iText升级到最新版本(5.0.0),我无法找到RtfWriter2(或旧的RtfWriter)或HtmlWriter.简而言之,我想知道是否有人知道是否甚至维护了对这些文件类型的支持,因为网络搜索引擎上的每次搜索显然都指向了以前版本的iText,显然,其中一个人能够做到一切.关于此事的任何提示?
我正在阅读有关Java中异常处理的一些内容,以便能够编写更好的代码.好吧,我承认,我很内疚; 我已经使用了太多的try-catch {}块,我已经ex.printStackTrace()在catch中使用了,甚至没有使用正确的记录器(实际上System.out并且System.err被重定向到a PrintWriter,因此生成了日志).然而,经过几个小时的阅读,我发现自己处在一个陌生的地方:未知.如果异常被设计为传递有关流的异常状态的信息,那么如何知道WHERE是用该信息做某事的适当级别?
例如,当发生数据库错误时,是应该返回空值还是错误代码,还是抛出异常?如果抛出,那么应该处理该异常?据我所知,如果你不能对它做任何事情,那么记录异常是没用的.但是,在GUI应用程序中,这可能很容易杀死你的GUI(我使用SWT而且我经常看到这个),即使对于menuShown()方法的情况(ArrayIndexOutOfBounds如果不处理,例外将关闭应用程序).这个例子可以永远持续下去,但这里是问题摘要:
我知道这个主题是永恒的,但实际上我期待着根据你的建议审查一个150个班级的中型项目.非常感谢.
1.关于PMD:
1.1如何设置PMD检查,忽略其中的一些,例如"变量名太短或太长","删除空构造函数等" - 如果我这样做,会出现另一个警告,说该类必须有一些静态的方法.基本上,这个课程是空的,以便以后开发,我现在想把它留下来.
1.2遵循此警告建议是否必要?
A class which only has private constructors should be final
Run Code Online (Sandbox Code Playgroud)
1.3那是什么意思?
The class 'Dog' has a Cyclomatic Complexity of 3 (Highest = 17)
Run Code Online (Sandbox Code Playgroud)
1.4这个怎么样?我很乐意改变这一点,但目前关于变化的事情并没有让我想到:
Assigning an Object to null is a code smell. Consider refactoring.
Run Code Online (Sandbox Code Playgroud)
2.关于FindBugs:
2.1写入静态字段是否真的那么糟糕,比它的声明要晚一些?以下代码给了我一个警告:
Main.appCalendar = Calendar.getInstance();
Main.appCalendar.setTimeInMillis(System.currentTimeMillis());
Run Code Online (Sandbox Code Playgroud)
哪里appCalendar是静态变量.
2.2此代码:
strLine = objBRdr.readLine().trim();
Run Code Online (Sandbox Code Playgroud)
发出警告:
Immediate dereference of the result of readLine()
Run Code Online (Sandbox Code Playgroud)
这里objBRdr是一个BufferedReader(FileReader).怎么会发生什么?readLine()可能是空的?代码嵌套在while (objBRdr.ready())测试中,到目前为止,我没有问题.
当我用以下代码替换代码时,Update1:2.2被修复了:
strLine = objBRdr.readLine();
if (strLine != null) { …Run Code Online (Sandbox Code Playgroud) 这个错误很奇怪,我无法理解它.我安装了EclipseRCP 3.5.1,Java SE 1.6 update 16并切换到SWT 3.5.我已经创建了一个新项目,设置了依赖项并尝试编译.尝试导入时,请使用以下命令:
import com.sun.org.apache.xml.internal.serialize.OutputFormat;
import com.sun.org.apache.xml.internal.serialize.XMLSerializer;
Run Code Online (Sandbox Code Playgroud)
我收到错误:
Access restriction: The type XMLSerializer is not accessible due to restriction on required library C:\Program Files\Java\jre6\lib\rt.jar.
Run Code Online (Sandbox Code Playgroud)
我已经谷歌了,在这里阅读一些回复......问题仍然存在.有趣的是,如果我使用以前的EclipseRCP(版本:3.4.2),这个问题永远不会发生.3.4.2版本使用相同的JRE版本,我刚刚测试了SWT版本.工作良好.我想这个问题依赖于新IDE的一些插件.有任何想法吗?
PS我发现了这篇文章.但我不喜欢或想要更改代码,如果我不需要.首先是问题的根源是什么,解决方案将遵循......
我的gradle版本是:
------------------------------------------------------------
Gradle 1.12
------------------------------------------------------------
Build time: 2014-04-29 09:24:31 UTC
Build number: none
Revision: a831fa866d46cbee94e61a09af15f9dd95987421
Groovy: 1.8.6
Ant: Apache Ant(TM) version 1.9.3 compiled on December 23 2013
Ivy: 2.2.0
JVM: 1.6.0_38-ea (Sun Microsystems Inc. 20.13-b02)
OS: Windows 7 6.1 amd64
Run Code Online (Sandbox Code Playgroud)
图像的应用程序文件夹路径是:
myApp\web-app\src\main\webapp\images
Run Code Online (Sandbox Code Playgroud)
gradle clean deploy通过在控制台中执行,以下文件夹将分解到我的 tomcat 部署文件夹中,其中包含图像文件:
\myApp\images
Run Code Online (Sandbox Code Playgroud)
部署的映像与我的项目文件具有相同的名称和完全相同的大小。唯一的问题是图像被损坏并且图像扭曲。有任何想法吗?
更新。以下代码似乎会导致文件损坏:
eachFile {
it.filter(org.apache.tools.ant.filters.ReplaceTokens, tokens: [
releaseVersion: project.version,
releaseDate: buildDate
])
}
Run Code Online (Sandbox Code Playgroud)
我想一个可能的解决方法是使用另一种方法来替换令牌。
更新2。正如一些人提到的,解决方案是仅将 ReplaceTokens 过滤器应用于某些文件,并跳过某些文件类型。以下代码有效:
filesNotMatching("**/*.png") {
it.filter(org.apache.tools.ant.filters.ReplaceTokens, tokens: [
releaseVersion: project.version,
releaseDate: buildDate
])
}
Run Code Online (Sandbox Code Playgroud) 有没有办法让这个 docker 镜像https://hub.docker.com/r/ibmcom/mq在 Apple M1 芯片上运行?对于英特尔芯片,我可以通过以下方式运行此映像:
docker run -e LICENSE=accept -e MQ_QMGR_NAME=QM1 -p 1414:1414 -p 9443:9443 ibmcom/mq
Run Code Online (Sandbox Code Playgroud)
是否有自定义构建或 IBM 官方计划来创建此映像的 Apple M1 兼容版本?
这是另一个有争议的主题,但这次我只搜索简单而有记录的答案.场景:
我们假设以下方法: public static Hashtable<Long, Dog> getSomeDogs(String colName, String colValue) {
Hashtable<Long, Dog> result = new Hashtable<Long, Dog>();
StringBuffer sql = null;
Dog dog = null;
ResultSet rs = null;
try {
sql = new StringBuffer();
sql.append("SELECT * FROM ").append("dogs_table");
sql.append(" WHERE ").append(colName).append("='");
sql.append(colValue).append("'");
rs = executeQuery(sql.toString());
while (rs.next()) {
dog= new Dog();
//...initialize the dog from the current resultSet row
result.put(new Long(dog.getId()), dog);
}
}
catch (Exception e) {
createErrorMsg(e);
result = null; //i wonder....
}
finally {
closeResultSet(rs); …Run Code Online (Sandbox Code Playgroud) 我正在做一个查询,从我的书集中提取属性“ titlu”的不同首字母,以便根据书籍的“ titlu”属性的首字母进行分组。我有一些以UTF-8字符开头的标题,例如Î,?,?等,但出现此错误:
显而易见的问题是:如何消除该错误?有两个可接受的选项:
但是,转换必须在mongo查询中完成,因为我还需要计数标题。(对于解决方案2,我们需要字母I,例如,将以I开头的标题的出现与以Î开头的标题的出现进行求和)。