小编Pav*_*van的帖子

如何确定Timer任务是否已完成

我有以下代码:

Timer timer = new Timer();      
TimerTask task = new TimerTask() {

    @Override
    public void run() {
        // TODO Auto-generated method stub
    }
};

timer.schedule(task, 10000);//execute after 10 seconds
Run Code Online (Sandbox Code Playgroud)

我们可以确定该任务是否已经由计时器执行或者是否仍然有效?

java android timer timertask

9
推荐指数
1
解决办法
2万
查看次数

在 avro 模式中使用“默认”

根据Avro 文档中“默认”属性的定义:“此字段的默认值,用于读取缺少此字段的实例(可选)。”

这意味着如果缺少相应的字段,则采用默认值。

但情况似乎并非如此。考虑以下student模式:

{
        "type": "record",
        "namespace": "com.example",
        "name": "Student",
        "fields": [{
                "name": "age",
                "type": "int",
                "default": -1
            },
            {
                "name": "name",
                "type": "string",
                "default": "null"
            }
        ]
    }
Run Code Online (Sandbox Code Playgroud)

架构说:如果缺少“年龄”字段,则将值视为 -1。同样对于“名称”字段。

现在,如果我尝试从以下 JSON 构建 Student 模型:

{"age":70}
Run Code Online (Sandbox Code Playgroud)

我得到这个例外:

org.apache.avro.AvroTypeException: Expected string. Got END_OBJECT

    at org.apache.avro.io.JsonDecoder.error(JsonDecoder.java:698)
    at org.apache.avro.io.JsonDecoder.readString(JsonDecoder.java:227)
Run Code Online (Sandbox Code Playgroud)

看起来默认值没有按预期工作。那么, default 在这里的作用究竟是什么?

这是用于生成学生模型的代码:

Decoder decoder = DecoderFactory.get().jsonDecoder(Student.SCHEMA$, studentJson);
SpecificDatumReader<Student> datumReader = new SpecificDatumReader<>(Student.class);
return datumReader.read(null, decoder);
Run Code Online (Sandbox Code Playgroud)

Student类是由 Avro 编译器从学生模式自动生成的)

java serialization hadoop avro apache-kafka

6
推荐指数
1
解决办法
6995
查看次数

运行gradle任务并将其返回值保存到shell脚本变量

有没有一种方法可以运行gradle任务并将其输出保存到shell变量中?

例如,让我们考虑打印模块版本的gradle任务:

task getVersion << {
    println '2.2.0'
}
Run Code Online (Sandbox Code Playgroud)

我像这样在shell中运行此任务:

$./gradlew getVersion
Run Code Online (Sandbox Code Playgroud)

是否可以将gradle任务getVersion的输出保存到shell变量中。例如:

VERSION=`./gradlew getVersion`
echo "Module Version is $VERSION"
Run Code Online (Sandbox Code Playgroud)

groovy gradle android-gradle-plugin

5
推荐指数
2
解决办法
2072
查看次数

在java中使用类型转换和泛型

我有以下这个界面:

    public interface FruitDetails {
            public String getFruitName(); 
    }
Run Code Online (Sandbox Code Playgroud)

几个实现上述接口的类:

    public class Banana implements FruitDetails{

        private int index;
            public Banana(int i) {
                index = i;
        }

        @Override
        public String getFruitName() {
            return "Banana Fruit " + index;
        }

    }
Run Code Online (Sandbox Code Playgroud)

    public class Apple implements FruitDetails{

        private int index;
            public Apple(int i) {
                index = i;
        }

        @Override
        public String getFruitName() {
            return "AppleFruit " + index;
        }

    }
Run Code Online (Sandbox Code Playgroud)

我有一个打印水果细节的功能:

    static void getFruitDetails(List<FruitDetails> fruits) {
            for (FruitDetails fruitDetails : fruits) { …
Run Code Online (Sandbox Code Playgroud)

java generics

1
推荐指数
1
解决办法
233
查看次数