我遇到了必须重写Object的toString()方法的问题,但是原始方法没有引发任何异常。但是,我正在使用一些需要抛出异常的通用代码。
public String toString() throws EmptyListException, InvalidPositionException
{
Position<Entry<E>> current = fList.first();
StringBuilder str = new StringBuilder();
for(int i = 0; i < size(); i++)
{
try
{
str.insert(str.length(), current.element().toString() + " ");
current = fList.next(current);
}
catch(Exception e){}
}
return str.toString();
}
这是FavoriteList.java的一部分。这些异常必须抛出。如果有某种方法可以抑制这些异常或将它们捕获到方法中,那将很有帮助。
最后,我的方法标题必须如下所示:
public String toString()
{ content }
我不在乎方法的结尾内容。只要编译就可以了。我只需要修复标题,但是找不到解决方法。提前非常感谢您。
首先,抛出异常toString()
是一个非常糟糕的主意。toString()
用于许多系统软件(例如调试器)中以生成对象的表示形式。
第一个优先选择是做其他事情,可能创建一个可能抛出的不同方法,并在toString()
调用该方法时捕获异常并产生替换输出,例如
super().toString() + " threw " + exception.toString();
如果您确实必须抛出,则可以执行以下操作:
try
{
str.insert(str.length(), current.element().toString() + " ");
current = fList.next(current);
}
catch(Exception e){
throw new IllegalStateExcception(super.toString(), e);
}
这会将检查的异常(从java.lang.Exception派生)包装在未检查的异常(从java.lang.RuntimeException派生)中。无需添加throws
子句。
问题内容: 如何覆盖对象类中的equals方法? 即我有 我想将参数obj转换为Person类型,但是如果执行(Person)obj,它将无法正常工作。 问题答案: 您可以将其强制转换为方法,只需使用的实例确保其类型正确
本文向大家介绍java中为何重写equals时必须重写hashCode方法详解,包括了java中为何重写equals时必须重写hashCode方法详解的使用技巧和注意事项,需要的朋友参考一下 前言 大家都知道,equals和hashcode是java.lang.Object类的两个重要的方法,在实际应用中常常需要重写这两个方法,但至于为什么重写这两个方法很多人都搞不明白。 在上一篇博文Java中e
当spring boot启动时,抛出异常 谁知道为什么抛出异常。
在android开发者博客上,我读到了以下内容: “复制观点”是什么意思?因此,如果我有一个ViewPager的片段包含一个ArrayAdapter并且我追加了新的数据,我需要调用内部片段notifyDataSetChanged()并在ViewPager中用getItemPosition()捕获它?如果我不那样做又有什么问题呢?
本文向大家介绍为什么在重写 equals方法的同时必须重写 hashcode方法,包括了为什么在重写 equals方法的同时必须重写 hashcode方法的使用技巧和注意事项,需要的朋友参考一下 我们都知道Java语言是完全面向对象的,在java中,所有的对象都是继承于Object类。 其 equals 方法比较的是两个对象的引用指向的地址,hashcode 是一个本地方法,返回的是对象地址值。O
本文向大家介绍java tostring方法重写代码示例,包括了java tostring方法重写代码示例的使用技巧和注意事项,需要的朋友参考一下 当需要将一个对象输出到显示器时,通常要调用他的toString()方法,将对象的内容转换为字符串.java中的所有类默认都有一个toString()方法 默认情况下 System.out.println(对象名)或者System.out.println