Java dart语言中的注释/元数据

Java dart语言中的注释/元数据,java,annotations,dart,metadata,Java,Annotations,Dart,Metadata,谁能帮忙把下面的JAVA转换成DART 我试图理解注释,在DART中找不到足够的文档,找到了这个JAVA示例;尝试将其转换为DART,但失败:( Test.java package com.mkyong.test.core; 导入java.lang.annotation.ElementType; 导入java.lang.annotation.Retention; 导入java.lang.annotation.RetentionPolicy; 导入java.lang.annotation.Targ

谁能帮忙把下面的JAVA转换成DART

我试图理解注释,在DART中找不到足够的文档,找到了这个JAVA示例;尝试将其转换为DART,但失败:(

Test.java

package com.mkyong.test.core;
导入java.lang.annotation.ElementType;
导入java.lang.annotation.Retention;
导入java.lang.annotation.RetentionPolicy;
导入java.lang.annotation.Target;
@保留(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)//只能在方法中使用。
公共@接口测试{
//你应该忽略这个测试吗?
public boolean enabled()默认为true;
}
TesterInfo.java

package com.mkyong.test.core;
导入java.lang.annotation.ElementType;
导入java.lang.annotation.Retention;
导入java.lang.annotation.RetentionPolicy;
导入java.lang.annotation.Target;
@保留(RetentionPolicy.RUNTIME)
@目标(ElementType.TYPE)//在类级别
public@interface TesterInfo{
公共枚举优先级{
低、中、高
}
Priority Priority()默认优先级为.MEDIUM;
字符串[]标记()默认为“”;
字符串createdBy()默认为“Mkyong”;
字符串lastModified()默认值为“03/01/2014”;
}
TestExample.java

package com.mkyong.test;
导入com.mkyong.test.core.test;
导入com.mkyong.test.core.TesterInfo;
导入com.mkyong.test.core.TesterInfo.Priority;
@测试员信息(
优先级=优先级。高,
createdBy=“mkyong.com”,
标签={“销售”、“测试”}
)
公共类测试示例{
@试验
无效测试(){
如果(真)
抛出新的RuntimeException(“此测试始终失败”);
}
@测试(已启用=错误)
void testB(){
if(false)
抛出新的RuntimeException(“此测试始终通过”);
}
@测试(启用=真)
void testC(){
如果(10>1){
//什么都不做,这个测试总是通过的。
}
}
}
RunTest.java

package com.mkyong.test;
导入java.lang.annotation.annotation;
导入java.lang.reflect.Method;
导入com.mkyong.test.core.test;
导入com.mkyong.test.core.TesterInfo;
公共类运行测试{
公共静态void main(字符串[]args)引发异常{
System.out.println(“测试…”);
int passed=0,failed=0,count=0,ignore=0;
Class obj=TestExample.Class;
//进程@TesterInfo
if(对象isAnnotationPresent(TesterInfo.class)){
Annotation=obj.getAnnotation(TesterInfo.class);
TesterInfo TesterInfo=(TesterInfo)注释;
System.out.printf(“%n优先级:%s”,testerInfo.priority());
System.out.printf(“%nCreatedBy:%s”,testerInfo.createdBy());
System.out.printf(“%nTags:”);
int tagLength=testerInfo.tags().length;
for(字符串标记:testerInfo.tags()){
如果(标记长度>1){
系统输出打印(标签+“,”);
}否则{
系统输出打印(标签);
}
标记长度--;
}
System.out.printf(“%nLastModified:%s%n%n”,testerInfo.lastModified());
}
//过程@测试
for(方法:obj.getDeclaredMethods()){
//如果方法用@Test注释
if(方法isAnnotationPresent(测试类)){
Annotation=method.getAnnotation(Test.class);
测试=(测试)注释;
//如果启用=真(默认)
if(test.enabled()){
试一试{
调用(obj.newInstance());
System.out.printf(“%s-测试“%s”-通过了%n”,++count,method.getName());
通过++;
}捕获(可丢弃的ex){
System.out.printf(“%s-测试“%s”-失败:%s%n”,++count,method.getName(),ex.getCause());
失败++;
}
}否则{
System.out.printf(“%s-测试“%s”-忽略了%n”,++count,method.getName());
忽略++;
}
}
}
System.out.printf(“%n结果:总计:%d,通过:%d,失败%d,忽略%d%n”,计数,通过,失败,忽略);
}
}
上述数据的输出应为:

测试

优先事项:高 创建人:mkyong.com 标签:销售、测试 最后修改日期:2014年1月3日

1-测试“testA”-失败:java.lang.RuntimeException:此测试始终失败 2-测试“testC”-通过 3-测试“testB”-忽略

结果:总计:3,通过:1,失败1,忽略1


除了注释,我没有仔细查看代码及其功能

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)//只能在方法中使用。
在Dart中没有等效项。在Dart中,每个常量值都可以作为注释应用于允许注释的每个位置

关于在Dart中使用注释的一些问题/答案

查看标签
省道镜
,了解更多信息

有关在Dart中编写单元测试的信息