首页 > 解决方案 > 如何防止某人在java方法上输入某个值?

问题描述

我有这个方法:

public static int getSlotFromRow(int row, int slot)

将其想象为从某个数据表中的一行中获取插槽。

每行有 9 个插槽,最大行数为 6。我希望此方法返回一个整数,告诉我插槽(例如,如果我想要第 4 行的第 3 个插槽,该方法将返回 30)。

但是,当他们使用该方法时,如何防止某人在行变量上输入大于 6 的整数和在槽变量上输入大于 9 的整数?

标签: javamethodsinteger

解决方案


你有几个选择。最广泛使用的是在方法本身内验证传递给方法的值:

    public static int getSlotFromRow(int row, int slot) throws IllegalArgumentException {
        // Verify the values are valid
        if (row < 1 || row > 6) {
            throw new IllegalArgumentException("Invalid row selected!");
        }
        if (slot < 1 || slot > 9) {
            throw new IllegalArgumentException("Invalid slot selected!");
        }

        return 30; // Or whatever calculation you do to come up with 30
    }

您也可以在调用该方法之前进行验证。


推荐阅读