Fat*_*aho 0 java parameters methods enums
我有多个枚举.这是一个例子:
public enum Telomeres {
TELOMERE_1("TTAGGG"), TELOMERE_2("TTCAAA");
public String telomere;
Telomeres(String telomere){
this.telomere = telomere;
}
public String getSequence() {
return telomere;
}
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试创建循环所有枚举类值的方法(使用枚举参数)并检查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;
}
Run Code Online (Sandbox Code Playgroud)
我将非常感谢任何建议如何解决这个问题或纠正我的观点.
要从Class
对象获取枚举值,您可以使用Class.getEnumConstants()
.
如果要访问该getSequence()
功能.你应该使用一个接口:
public interface SequenceProvider {
String getSequence();
}
public enum Telomeres implements SequenceProvider {
/*
...
*/
@Override
public String getSequence() {
return telomere;
}
}
Run Code Online (Sandbox Code Playgroud)
并更改签名hasTranscriptionStopSite(Class, String)
以保证,T
扩展界面:
public <T extends Enum<T> & SequenceProvider> boolean hasTranscriptionStopSite(Class<T> enumData, String chromatin)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1502 次 |
最近记录: |