java中可以有switch(java.lang.Object)吗?

发布于 2024-10-06 15:56:22 字数 558 浏览 3 评论 0原文

我的应用程序需要具有 String 类型的 switch case 语句。

我需要这样的东西:

    Object list1 = "list1";
    Object list2 = "list2";
    Object list3 = "list3";

    Object option = "list1";
    switch (option) {
        case list1: // Do something
        case list2: // Do something
        case list3: // Do something
        default:    // Do something
    }

有可能吗?

编辑:

对于 n 条件使用 switch case 比使用 if 更好吗? 还有其他?请评论一下?

My application required to have switch case statement of type String.

I need something like this:

    Object list1 = "list1";
    Object list2 = "list2";
    Object list3 = "list3";

    Object option = "list1";
    switch (option) {
        case list1: // Do something
        case list2: // Do something
        case list3: // Do something
        default:    // Do something
    }

Is it possible to have?

EDIT:

Is it better to use switch case for n conditions rather going with if
and else? Please comment on it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

小姐丶请自重 2024-10-13 15:56:22

由于您要打开字符串,我假设字符串在编译时是已知的。在这种情况下,您可以使用枚举。

    public enum MyStrings{

        LIST1, LIST2
    }

然后

    switch(MyStrings.valueOf(option)){

         case LIST1: do something; break;
         //etc.
    }

Since you are switching on Strings I assume that the strings are known at compile time. In that case you can use an enum.

    public enum MyStrings{

        LIST1, LIST2
    }

Then

    switch(MyStrings.valueOf(option)){

         case LIST1: do something; break;
         //etc.
    }
递刀给你 2024-10-13 15:56:22

在 JDK 7 版本中,您可以在 switch 语句的表达式中使用 String 对象:
http://docs.oracle.com/javase /7/docs/technotes/guides/language/strings-switch.html

In the JDK 7 release, you can use a String object in the expression of a switch statement:
http://docs.oracle.com/javase/7/docs/technotes/guides/language/strings-switch.html

揽月 2024-10-13 15:56:22

请参阅此问题:为什么我无法打开字符串?

目前不行支持,但预计在 Java 7 中。

编辑:实际上似乎只是 String,而不是任何 Object

也许每个对象都应该实现一个包含您的逻辑的方法正在尝试放入 switch 语句中?

See this question: Why can't I switch on a String?

Not currently supported, but expected to be in Java 7.

Edit: actually appears to be Strings only, not any Objects

Perhaps each object should implement a method that contains the logic you're trying to put into the switch statement?

安稳善良 2024-10-13 15:56:22

不,你不能这样做(尝试一下就知道了)。但如果你想要这个,也许像 HashMap 这样的 Map 更适合你的目的。

No, you can't do this (try it and find out). But if you want this, perhaps a Map such as a HashMap would better suit your purposes.

痞味浪人 2024-10-13 15:56:22

不,使用其他集合(如 Hashmap)或使用数组索引来执行相同的操作,创建元素数组并在索引上放置 switch case

No, use other collections like Hashmap or use array indexes to do the same, create an array of elements and put a switch case on index

时光清浅 2024-10-13 15:56:22

该开关可以支持检查 String、Integer 等原始数据类型,但在对象比较中不支持成功。

The switch can be supported for checking String, Integer and other primitive data types, but it is not approve successful in objects comparisons.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文