java - 如何编写根据类型执行操作的代码

标签 java methods types

请耐心等待我解决这个问题的措辞。假设我有一个名为“UserType”的用户定义类型,并且该类型有 4 个值:北、南、东和西。

public enum UserType {
    NORTH, SOUTH, EAST, WEST
}

然后,我想在不同的类中编写一个方法语句,它将根据类型增加两个变量的值。例如,

public class direction {
    private int peopleWhoGoNorth;
    private int peopleWhoGoSouth;

所以 peopleWhoGoNorth 应该在每次调用以下方法时跟踪去北方的人数:

public void whichWay(UserType type) {
        }

我想知道如何在括号之间创建一个语句,该语句基本上是这样的:如果类型是北方,则将 peopleWhoGoNorth 加 1,如果类型是南方,则将 peopleWhoGoSouth 加 1。我猜 if/else 语句应该可以做到这一点,但我不确定语法是如何工作的。以下可以吗?

public void whichWay (UserType type){
    if (UserType = NORTH){peopleWhoGoNorth = peopleWhoGoNorth + 1);
    if (UserType = SOUTH){peopleWhoGoSouth = peopleWhoGoSouth + 1);
    }

如果有什么办法可以澄清这个问题,请告诉我。

最佳答案

您可以为枚举使用开关:

public void whichWay (UserType type){
  switch (type) {
    case NORTH:
      peopleWhoGoNorth++;
      break;
    case SOUTH:
      peopleWhoGoSouth++;
      break;
    default:
      throw new IllegalArgumentException();
  }
}

关于java - 如何编写根据类型执行操作的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31036186/

相关文章:

java - Spring Boot 原生配置

java - 如何使用 Android Studio 删除 JsonArray 中的反斜杠 ("\"")?

jquery - 最低要求的 jQuery 版本

C++ 隐式数字类型降级

java - Spring LDAP 支持的 LDAP 提供程序列表

java - 在 Spring 环境中泄漏 Tomcat JDBC MySQL 驱动程序

ruby - 为什么一些未定义的方法(例如 Foo)没有被 `method_missing` 捕获?

c++ - 如何打印类方法返回的值

c - 结构无法在结构中定义新类型和结构

string - TypeScript:将文字字符串类型定义转换为字符串值(如 typeof 运算符),或反之亦然?