我想在pom文件中定义一个checkstyle运行,并让它在除了某些指定的子模块之外的所有子模块上运行.
换句话说,我需要某种<excludes>(存在但适用于文件名)但是它以目标模块为目标.任何想法的人?
可能重复:
在Java中使用final关键字可以提高性能吗?
在最后的修改有不同的后果取决于你把它应用到什么在java中.我想知道的是,如果另外它可能有助于编译器创建更高效的字节码.我想这个问题深入探讨了JVM的工作原理以及JVM的具体情况.
那么,根据您的专业知识,请执行以下任何一项帮助编译器,或者您是否仅出于正常的java原因使用它们?
谢谢!
编辑:谢谢你的所有答案!请注意,正如@Zohaib建议的那样,我的问题与此重复.在发布之前我搜索得不够好.我不是删除它,因为你们做出了很好的贡献,但答案可以合并.除非另有说明,否则我会让"投票结束"系统决定.
在以下简约示例中:
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
public class GsonStuff {
public static void main(String[] args) {
GsonBuilder builder = new GsonBuilder();
Gson gson = builder.create();
System.out.println(gson.toJson("Apostrophe: '"));
//Outputs: "Apostrophe: \u0027"
}
}
Run Code Online (Sandbox Code Playgroud)
撇号被打印输出中的unicode表示所取代.但是,从toJson方法返回的字符串字面上有"\","u","0","0","2","7"字符.
用json解码它实际上是有效的并且给出字符串"Apostrophe:'"而不是"Apostrophe:\ u0027".我应该如何解码它以获得相同的结果?
还有一个问题,为什么一个随机的unicode字符如ش得到的编码类似?
可能重复:
Java:从集合中获取第一个项目
在Java中,我经常会遇到一个带有一个元素的集合,我需要检索它.因为集合不保证一致的排序,所以没有first()或get(int index)方法,所以我需要使用相当丑陋的东西,例如:
public Integer sillyExample(Collection<Integer> collection){
if(collection.size()==1){
return collection.iterator().next();
}
return someCodeToDecideBetweenElements(collection);
}
Run Code Online (Sandbox Code Playgroud)
那么,你如何获得唯一的元素?我不敢相信没有更好的方法......
请注意,我理解没有"第一"的概念,我只是试图避免构建迭代器,因为我知道它只有一个元素.
编辑:Peter Wooster在这里发现了一个非常相似的问题.我要离开这个因为我不是想要获得"第一"元素,这意味着一致的排序,但是在检查它确实是唯一元素之后是"唯一的"元素.
有时候,我最终还是要抓住一个我知道永远不会发生的异常,比如这里
URLDecoder.decode("some string", "UTF-8"); //No unknown encoding possible
Run Code Online (Sandbox Code Playgroud)
或者在这里:
public void methodWithURL(URL url){
URI uri = new URI(url); //No invalud URI syntax possible
}
Run Code Online (Sandbox Code Playgroud)
你怎么处理这个?我通常会记录一个关于宇宙定律如何变化的有趣错误,然后抛出一个RuntimeException.有没有更好的办法?
在喜欢Hashtable和Vector不喜欢的东西之后,当Collections同步包装器出现时,我认为同步将更有效地处理.现在我查看了代码,我很惊讶它只是用同步块包装集合.
ReadWriteLock例如,为什么不包含在集合中的SynchronizedMap?是否存在一些不值得的效率考虑因素?
在下面的类中,两种方法的返回类型与三元运算符的思想不一致:
return condition?a:b;
Run Code Online (Sandbox Code Playgroud)
相当于
if(condition) {
return a;
} else{
return b;
}
Run Code Online (Sandbox Code Playgroud)
第一个返回Double,第二个返回Long:
public class IfTest {
public static Long longValue = 1l;
public static Double doubleValue = null;
public static void main(String[] args) {
System.out.println(getWithIf().getClass());// outpus Long
System.out.println(getWithQuestionMark().getClass());// outputs Double
}
public static Object getWithQuestionMark() {
return doubleValue == null ? longValue : doubleValue;
}
public static Object getWithIf() {
if (doubleValue == null) {
return longValue;
} else {
return doubleValue;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我可以想象这与编译器缩小转换类型有关,getWithQuestionMark()但是语言明智吗?这肯定不是我所期望的. …
应执行以下两个if块的内容:
if( booleanFunction() || otherBooleanFunction() ) {...}
if( booleanFunction() | otherBooleanFunction() ) {...}
Run Code Online (Sandbox Code Playgroud)
那么使用|或使用之间的区别是||什么?
注意:我调查了这个并找到了我自己的答案,我在下面提到了答案.请随时纠正我或给自己的看法.肯定有改进的余地!
我很困难,试图将一个工件,它的源代码和它的javadoc部署到我们的maven资源库(Nexus).源和javadoc参数似乎被忽略,只有-Dfile中指定的主jar实际上传.
有谁知道什么是错的?这是我的命令(我正在尝试将Whack放入我们的本地存储库)
mvn deploy:deploy-file -Dfile=whack-1.0.0.jar \
-Dsources=whack-1.0.0-sources.jar \
-Djavadoc=whack-1.0.0-javadoc.jar \
-DgroupId=org.igniterealtime \
-DartifactId=whack \
-Dversion=1.0.0 \
-Dpackaging=jar \
-Durl=https://myhost.com/nexus/content/repositories/thirdparty/
Run Code Online (Sandbox Code Playgroud) java ×8
collections ×2
maven ×2
checkstyle ×1
concurrency ×1
eclipse ×1
eclipse-tptp ×1
gson ×1
if-statement ×1
nexus ×1
operators ×1
optimization ×1
profiler ×1
return ×1
unicode ×1