小编Con*_*ty8的帖子

检查返回值是否为空,如果是,则在一行中使用一个方法调用进行分配

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或其他值;

我想我只是在这里讨论语法,在编译代码之后,它可能没有太大的区别代码是如何在性能意义上编写的.

因为这是一个很常见的代码,所以有一个单行写入它会很棒.

是否有其他语言有此功能?

java syntax null variable-assignment method-call

48
推荐指数
6
解决办法
8万
查看次数

错误:无法初始化模块TreeWalker - 无法实例化JUnitTestCase

将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配置文件中的模块条目,但我要求它按设计工作,这不是更好的选择.

java eclipse checkstyle maven

12
推荐指数
1
解决办法
1万
查看次数

在Java中,嵌套类与其外部类之间的关系是什么?

当实例化嵌套类时它如何引用外部类?它总是扩展外部类或以另一种方式引用它吗?我被告知内部延伸到外部但是为什么以下示例不起作用?

例如:

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)

这似乎表明除非特别指定,否则内部类不会扩展外部类.

java nested reference nested-class inner-classes

7
推荐指数
1
解决办法
621
查看次数

Jaggery(WS02)端点引用/动态端点

我目前正在开发一个我在其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文档的运气不大.

web-services wso2 wso2-api-manager jaggery-js api-manager

7
推荐指数
1
解决办法
175
查看次数

没有创建Roo项目的选项是Spring Tool Suite(STS版本3.6.1)

在STS 3.6.1中似乎没有选项来创建Roo应用程序.虽然谷歌搜索我在版本3.5.0中注意到同一问题的这个问题,并且sloution是手动安装Roo到STS,因为它不再包括在内.很好,所以我做到了.

我从STS仪表板安装它,安装完成后重新启动STS,仪表板显示此信息(因此安装成功):

在此输入图像描述

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

在此输入图像描述

那么......我怎样才能找到从Spring工具套件中创建Spring Roo应用程序的选项?

eclipse spring project spring-roo spring-tool-suite

4
推荐指数
1
解决办法
1915
查看次数

正则表达式确定字符串是否是单个重复字符

什么是正则表达式模式来确定字符串是否仅由一个重复字符组成?

例如

"aaaaaaa"= true
"aaabbbb"= false
"$$$$$$$"= true

问题检查字符串是否仅包含重复字符(例如"aabb"),但我需要确定它是否是单个重复字符.

java regex string repeat

4
推荐指数
2
解决办法
5441
查看次数

打开 zip 文件时出错或缺少 JAR 清单:jrebel.jar

在我的远程服务器(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。我已经阅读了我能找到的所有零周转文章+查看了为其他人解决问题的解决方案,但没有运气。有任何想法吗?

linux jboss filepath jrebel

4
推荐指数
1
解决办法
1万
查看次数

'public Boolean isBikeTyreFlat()'是一个有效的JavaBeans方法签名吗?

此方法签名是否有效?

public Boolean isBikeTyreFlat(){}
Run Code Online (Sandbox Code Playgroud)

请注意,我试图在这里返回一个Object而不是一个原语.

谢谢 :)

java boolean return object

2
推荐指数
1
解决办法
2055
查看次数

为什么这不编译?无法为匿名类的String成员分配新值

为什么我不能在下面的代码中为匿名类的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 variable-assignment anonymous-class

1
推荐指数
1
解决办法
81
查看次数