gpt4 book ai didi

java - 如果枚举类是Java方法中的参数,如何获取枚举值?

转载 作者:行者123 更新时间:2023-12-01 07:05:55 26 4
gpt4 key购买 nike

我有多个枚举。这是一个例子:

   public enum Telomeres {

TELOMERE_1("TTAGGG"), TELOMERE_2("TTCAAA");

public String telomere;

Telomeres(String telomere){
this.telomere = telomere;
}

public String getSequence() {
return telomere;
}
}

我正在尝试创建方法(带有枚举参数),该方法循环枚举类的所有值并检查 String 是否至少包含这些值之一。不幸的是,我无法获取枚举值来检查字符串是否包含它们。这是说明问题的代码。

public <T extends Enum<T>> boolean hasTranscriptionStopSite(Class<T> enumData, String chromatin) {

for(T e: enumData.values()) { // I get error here
if(chromatin.contains(e.getSequence())){ // Also I have problems here
hasTranscriptionStopSite = true;
break;
}
}
return hasTranscriptionStopSite;
}

如果您提供有关如何解决此问题的建议或纠正我的观点,我将非常感激。

最佳答案

要从 Class 对象获取枚举值,您可以使用 Class.getEnumConstants()

如果您想访问getSequence()函数。您应该使用一个接口(interface):

public interface SequenceProvider {
String getSequence();
}

public enum Telomeres implements SequenceProvider {
/*
...
*/

@Override
public String getSequence() {
return telomere;
}
}

并更改 hasTranscriptionStopSite(Class, String) 的签名以保证 T 扩展接口(interface):

public <T extends Enum<T> & SequenceProvider> boolean hasTranscriptionStopSite(Class<T> enumData, String chromatin)

关于java - 如果枚举类是Java方法中的参数,如何获取枚举值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24718856/

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