繁体   English   中英

如何设计返回两种不同返回类型的类方法?

[英]how to design class method that returns two different return type?

一个具有较小逻辑的子类,它返回布尔值true / false或错误消息,但在发生任何异常的情况下,它会陷入同一个类和错误消息中,仅是为了暗示上层类,该上层类曾在UI中显示错误消息。无法考虑如何管理子类的返回值,因为如果子类成功运行,则返回布尔值true / false,但是如果出错,则返回String错误消息,这一点我发现方法有两种不同类型的返回值问题。帮助我如何解决这个问题。

您有两个选择返回对象

class Status {
   Boolean succesful;
   String errorText;
}

或如果发生错误则抛出异常

throw new Exception( errorText );

为什么返回String错误代码? 只需抛出您的异常(也许,包裹在其他异常中)并接受它。

您的问题不是很清楚。
据我了解,您应该返回布尔值或异常。
您应该在异常中设置错误消息(请参阅: http : //docs.oracle.com/javase/1.5.0/docs/api/java/lang/Exception.html#Exception%28java.lang.String%29 ) 。 如果需要,您还可以返回不同的异常。

如果您的子类返回对象类型的变量,则可以向上检查其数据类型。

//Success
Object object = new Boolean();

//Fail
Object object = new String();

if(object instanceOf Boolean) {
//Do something
} else if(object instanceOf String) {
//Do something else
}

考虑使用Functional Java的Either类。 这是一个保留两个值之一的实现。

要么

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM