gpt4 book ai didi

java - 从java中的父接口(interface)获取枚举大小

转载 作者:行者123 更新时间:2023-12-02 06:11:44 25 4
gpt4 key购买 nike

我有一个接口(interface) ParentInterface 并有多个实现它的枚举:ChildEnum1ChildEnum2。我有一个方法,将 ParentInterface 作为参数传递给该方法。

根据传递给此方法的 ChildEnum 内容,我想获取枚举的大小。我怎样才能做到这一点? values.length() 方法仅适用于 enum,但我们仅将 ParentInterface 传递给调用者。

我们怎样才能实现这一目标?

最佳答案

通过反射,使用Class#getEnumConstants() (快速而肮脏的演示):

package com.stackoverflow.so21821751;

public class Test {
interface ParentInterface {
void someMethod();
}

static enum ChildEnum1 implements ParentInterface {
FOO, BAR, LOL;

@Override
public void someMethod() {
// something
}
}

static enum ChildEnum2 implements ParentInterface {
FOO, BAR;

@Override
public void someMethod() {
// something
}
}

public static void main(final String[] args) {
foo(ChildEnum1.BAR); // 3
foo(ChildEnum2.FOO); // 2
}

private static void foo(final ParentInterface i) {
System.out.println(i.getClass().getEnumConstants().length);
}
}

关于java - 从java中的父接口(interface)获取枚举大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21821751/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com