小编LaR*_*RRy的帖子

在Java中,从调用者或调用的方法中进行所有必要的检查是否更好?

我们来看看这两个例子.

第一:

try {
    execute(testObj);
} catch(Exception e) {
    //do somethingwith that
}

public void execute(TestObj testObj) throws Exception {
    if (testObj == null){
        throw new Exception("No such object");
    }
    //do something with object
}
Run Code Online (Sandbox Code Playgroud)

第二:

if (testObj != null){
    execute(testObj);
} else {
    //handle this differently
}

public void execute(TestObj testObj) {
    //do something with object
}
Run Code Online (Sandbox Code Playgroud)

如果我们需要检查"is null"或其他任何东西,现在不是重点.我想知道哪种做法总体上更好 - " 检查,然后做 "或" 做,然后处理异常,如果发生 "?

java validation exception

21
推荐指数
3
解决办法
890
查看次数

在Intellij IDEA中合并两个类的最简单方法是什么?

我有:

class Parent {} class Child1 extends Parent{} class Child2 extends Parent{}

我在我的应用程序中到处使用所有三个类(尤其是子类).现在决定应该删除子类,而父类需要从两个子类中保存字段(和方法).我怎样才能轻松获得所需的结果?

我想到的只是将所有子数据移动到Parent类,然后Ctrl+Shift+R替换所有出现的旧类.我仍然想知道,有没有更好的方法来实现这一目标?

java merge intellij-idea

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

尝试使用 Apache POI 打开 Excel 文件时,为什么会出现异常“IOException: ZIP entry size is too large”?

问题与此处描述的相同

但既然那里没有找到解决方案,想在这里重新打开这个话题吗?简而言之,我使用的是 Apache POI 3.8。我有一个带有宏的*.xlsm文件。我试图在部署应用程序时打开此文件,但在“ XSSFWorkbook ”构造函数中出现错误,该错误表明“ ZIP 条目大小太大”。奇怪的是,我能够在我的 IDEA 中本地执行该操作而没有任何问题。如果有人愿意分享正在发生的事情的想法,如果过去有这样的问题,我们将不胜感激。

java apache excel zip apache-poi

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

如何将处理程序注册到使用 XmlAdapter 的 JAXB 带注释的类,以便向 REST 资源客户端发送错误消息?

我正在研究在 JAXB 编组中使用 BigDecimal

默认情况下发生的情况是抛出异常,但没有处理程序正在侦听它。结果,此类请求到达 JAR-RS 方法,但提交的字段 thad 的值“不正确”,设置为 NULL。

我在 JAVADOC 中读到,必须设置一个处理程序,以便在发生这种情况时我可以做一些事情。但我找不到有关如何设置此类处理程序的信息。

我的端点是这样的:

@Path("/path")
public class MyResource {

    @POST
    @Path("something")
    public Response postSomething(JaxbAnnotatedRequest request) {
        //processing....
    }
}
Run Code Online (Sandbox Code Playgroud)

java jax-rs jaxb

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

在Java中执行某些操作并返回表示成功的布尔值的好习惯是什么?

我的意思是,我读到一个编写方法的好方法是遵循规则:一个方法应该只做一个任务.如果我有不同的顺序操作,那么我需要将方法分成几个.它应该使代码更简洁,自我解释的方法名称.但是如果我想实现应该做某事的方法然后返回布尔值 - true表示成功,如果失败则表示false.例如,假设我们有一个名为setObjectValue()的setter.[再次,它只是一个例子].

问题:使用此名称并返回布尔值是否合适,或者它应该是:isSuccessfullsetObjectValue(),setObjectValueAndCheckIsOk(),还是应该有两种方法或什么?因为名称"setObjectValue()"不会告诉您该方法除了设置值之外还在执行某些操作.

java methods

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

如何避免方法中的try-catch语句?

对我个人来说(这并不意味着我是对的),包括try-catch语句在方法'重载'他们的内部结构为读者.使用DB时,您应该包括SQLExceptions,ConnectionExceptions等等.有没有办法将所有例外的责任放在某个对象上?

我想是这样的:

enum TaskEnum {
    doSmth1, doSmth2, doSmth3, doSmth4
}

class OuterClass {

    doWhatever(TaskEnum task, String… args) {
        try {
        switch(task) {
                case (doSmth1): InnerClassInstance.execute1(args); break;
                case (doSmth2): InnerClassInstance.execute2(args);break;
                case (doSmth3): InnerClassInstance.execute3(args);break;
                case (doSmth4): InnerClassInstance.execute4(args);break;

        } catch(Exception e) {
                 e.printStack()}
         }
     }
}

class InnerClass {    
    execute1(String args) throws Exception() {bla-bla-bla};
    execute2(String args)throws Exception() { bla-bla-bla };
    execute3(String args)throws Exception() { bla-bla-bla };
    execute4(String args)throws Exception() { bla-bla-bla };
}
Run Code Online (Sandbox Code Playgroud)

通过这种方式,外部类将负责所有内部类方法抛出的异常.当然,如果认为我的解决方案是好的,我不会问这个问题.这只是一个例子,让你理解这个想法.

请分享您对此的看法.

java try-catch

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

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

构造函数中的Java在调用类的setter或直接传递值时会更好吗?

class Foo(){

String name;

public Foo(String name){
   //code to be inserted
}

public void setName(String name){
   this.name = name;
}

}
Run Code Online (Sandbox Code Playgroud)

插入缺失行更好的原因是什么:

1.) this.name = name;

2.) setName(name);

java setter constructor

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

在检查元素之前,HashSet的containsAll()是否会对集合大小进行比较?

是否HashSetcontainsAll()检查元素之前使集合大小的比较呢?

java

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