Java充斥着如下语句:
if(cage.getChicken() != null) {
dinner = cage.getChicken();
} else {
dinner = getFreeRangeChicken();
}
Run Code Online (Sandbox Code Playgroud)
getChicken()在返回的对象可以分配之前需要两次调用dinner.
这也可以写成一行,如下所示:
dinner = cage.getChicken() != null? cage.getChicken() : getFreeRangeChicken();
Run Code Online (Sandbox Code Playgroud)
但唉,还有两个电话getChicken().
当然我们可以分配一个局部变量,然后再次使用三元运算符来分配它,如果它不是null,但这是两行而不是那么漂亮:
FutureMeal chicken = cage.getChicken();
dinner = chicken != null? chicken : getFreeRangeChicken();
Run Code Online (Sandbox Code Playgroud)
那么有什么方法可以说:
变量var =某些值,如果某个值不为null或其他值;
我想我只是在这里讨论语法,在编译代码之后,它可能没有太大的区别代码是如何在性能意义上编写的.
因为这是一个很常见的代码,所以有一个单行写入它会很棒.
是否有其他语言有此功能?
将maven项目导入Eclipse Luna后,在修改方法后保存时弹出窗口中会显示以下错误:
无法初始化模块TreeWalker - 无法实例化JUnitTestCase
JUnitTestCase指的是checkstyle xml文件中的模块:
<module name="JUnitTestCase"/>
Run Code Online (Sandbox Code Playgroud)
我安装了'M2Eclipse的Checkstyle配置插件'和'Checkstyle Plug-in 6.4.0'.我的pom文件中"maven-checkstyle-plugin"的插件定义指定版本2.10.
注意:我意识到这与其他一些具有相同错误的问题类似(但是指定了不同的模块)但是我还没有找到令人满意的解决方案.我相信我可以删除checkstyle配置文件中的模块条目,但我要求它按设计工作,这不是更好的选择.
当实例化嵌套类时它如何引用外部类?它总是扩展外部类或以另一种方式引用它吗?我被告知内部延伸到外部但是为什么以下示例不起作用?
例如:
public class OuterClass {
public String fruit = "apple";
public class InnerClass {
public String fruit = "banana";
public void printFruitName(){
System.out.println(this.fruit);
System.out.println(super.fruit);
}
}
}
Run Code Online (Sandbox Code Playgroud)
上面没有编译错误,super.fruit说"水果"无法解决.但是,如果指定内部类来扩展外部类,那么它可以工作:
public class OuterClass {
public String fruit = "apple";
public class InnerClass extends OuterClass {
public String fruit = "banana";
public void printFruitName(){
System.out.println(this.fruit);
System.out.println(super.fruit);
}
}
}
Run Code Online (Sandbox Code Playgroud)
这似乎表明除非特别指定,否则内部类不会扩展外部类.
我目前正在开发一个我在其API管理器上部署的Jaggery应用程序.
从Jaggery后端我使用此处记录的方法调用SOAP Web服务,该方法指定:
<%
var url = 'http://jaggeryjs.org/apidocs/resources/home.jag';
var xhr = new XMLHttpRequest();
xhr.open("GET", url);
xhr.setRequestHeader("user" , "madhuka");
xhr.send();
print("ReadyState : "+xhr.readyState);
print("<br>ResponseStatus : "+xhr.status);
print("<br>ResponseText : "+xhr.responseText);
%>
Run Code Online (Sandbox Code Playgroud)
我已经完成所有工作并且工作正常,但是我想删除硬编码的URL并将其替换为基于环境的某种URL查找.
这样做的正确方法是什么?我可以在API管理器中指定端点并参考它吗?或者也许使用EPR文件.从这个意义上讲,我对Jaggery文档的运气不大.
在STS 3.6.1中似乎没有选项来创建Roo应用程序.虽然谷歌搜索我在版本3.5.0中注意到同一问题的这个问题,并且sloution是手动安装Roo到STS,因为它不再包括在内.很好,所以我做到了.
我从STS仪表板安装它,安装完成后重新启动STS,仪表板显示此信息(因此安装成功):

并且看到......仍然没有选择创建一个Spring Roo应用程序!

那么......我怎样才能找到从Spring工具套件中创建Spring Roo应用程序的选项?
什么是正则表达式模式来确定字符串是否仅由一个重复字符组成?
例如
"aaaaaaa"= true
"aaabbbb"= false
"$$$$$$$"= true
此问题检查字符串是否仅包含重复字符(例如"aabb"),但我需要确定它是否是单个重复字符.
在我的远程服务器(Linux 上的 JBoss)上配置 JRebel 时,我已将 JVM arg 配置为
-javaagent:/home/user/jrebel.jar" -Drebel.remoting_plugin=true
jrebel.jar 绝对位于该位置,但服务器无法启动并出现以下错误:
打开 zip 文件时出错或缺少 JAR 清单:/home/user/jrebel.jar VM 代理库初始化期间发生错误无法初始化:仪器
所以arg显然被正确地传递给了JVM,但我一生都无法弄清楚为什么它找不到jar。我已经阅读了我能找到的所有零周转文章+查看了为其他人解决问题的解决方案,但没有运气。有任何想法吗?
此方法签名是否有效?
public Boolean isBikeTyreFlat(){}
Run Code Online (Sandbox Code Playgroud)
请注意,我试图在这里返回一个Object而不是一个原语.
谢谢 :)
为什么我不能在下面的代码中为匿名类的String成员分配新值?
尝试编译时抛出错误:未解决的编译问题:令牌";"上的语法错误 ,,期待.然而String s = "Value";,当线s = "New Value";被注释掉时,这就行了.
public class Example {
// nested class to help us out
private class SomeClass {
}
// entry point
public static void main (String args[]){
Example e = new Example();
e.performTest();
}
// performs the test
private void performTest(){
// anonymous class to test
SomeClass nc = new SomeClass() {
String s = "Value";
s = "New Value";
};
}
}
Run Code Online (Sandbox Code Playgroud) java ×6
eclipse ×2
api-manager ×1
boolean ×1
checkstyle ×1
filepath ×1
jaggery-js ×1
jboss ×1
jrebel ×1
linux ×1
maven ×1
method-call ×1
nested ×1
nested-class ×1
null ×1
object ×1
project ×1
reference ×1
regex ×1
repeat ×1
return ×1
spring ×1
spring-roo ×1
string ×1
syntax ×1
web-services ×1
wso2 ×1