- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在编写一些Java代码,如果发现异常,我想循环回到之前的方法。
这是我的代码的简化版本:
public class classA
{
public static void main(String[] args)
{
int number1 = askUserForFavoriteSum();
int number2 = askUserForAnotherNumber();
}
public static int askUserForFavoriteSum()
{
int firstFavorite;
int secondFavorite;
int favoriteSum
System.out.println("What is your first favorite number?");
firstFavorite = classB.getIntFromConsole();
System.out.println("What is your second favorite number?");
secondFavorite = classB.getIntFromConsole();
favoriteSum = firstFavorite + secondFavorite;
return favoriteSum;
}
public static int askUserForAnotherNumber()
{
int number;
System.out.println("What is another number?");
number = classB.getIntFromConsole();
return number;
}
}
<小时/>
public class classB
{
public static int getIntFromConsole()
{
Scanner scanner = new Scanner(System.in)
int value;
try
{
value = Integer.valueOf(scanner.nextLine());
}
catch (NumberFormatException e) //Occurs when the input string cannot cleanly be converted to an int.
{
System.out.println("ERROR: Invalid input! Please enter a whole number.");
}
return value;
}
}
例如,给定上面的两个类,我希望发生以下情况:
经过一些研究,我发现很多人都选择 Strategy Design Pattern但是,这不太适合我,因为我的 classA 方法中有动态变量,而接口(interface)与动态变量不能很好地配合。
在其他情况下,一些开发人员将“Callable < MethodReturnType >”参数传递到与我的“getIntFromConsole”方法等效的参数中,并调用反射(reflect)传入方法的 future 方法。这种方法看起来可行,但它需要我添加一个新的抽象层。
有没有一种方法可以让我简单地调用 classA 中调用 getIntFromConsole 方法的先前方法,而无需添加抽象层或接口(interface)?
最佳答案
将其改为循环即可
public static int getIntFromConsole()
{
Scanner scanner = new Scanner(System.in)
int value;
while (true) {
try
{
value = Integer.valueOf(scanner.nextLine());
break;
}
catch (NumberFormatException e)
{
System.out.println("ERROR: Invalid input! Please enter a whole number.");
}
}
return value;
}
关于Java:如何在吞下异常后调用先前的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42266219/
我的应用将 SceneKit 内容的“页面”与图像和文本交替。当我从图像页面前进到新的 SceneKit 页面时,前一个 SceneKit 页面中的内容会短暂显示,然后被新内容替换。时髦。 我只使用一
我正在尝试处理(在 C# 中)包含一些数字数据的大型数据文件。给定一个整数数组,如何对其进行拆分/分组,以便如果下一个 n(两个或更多)是负数,则前一个 n 元素被分组。例如,在下面的数组中,应该使用
刚接触promises,研究过。所以我的代码和我的理解: sql.connect(config).then(function(connection) { return connection.req
目前我在 if (roobaf) block 中有一些代码,这取决于 foo 和 bar 是否为假。我可以在 block 内再次检查这些条件,但感觉像是不必要的代码重复。 if (foo) {
我是一名优秀的程序员,十分优秀!