Question: How do I start my function every 5 minutes and 20 seconds? I used: 

```
self.timer = QtCore.QTimer(self)
self.timer.timeout.connect(self.updateplot)
self.timer.start(310000)

```

But I'd like to set it by the time of my PC - so if I start the program at 3:23, the update track is at 3:25:20, 3:30:20 etc.

Answer: 
you can use reflection.

```
Dog dog = new Dog("val1", "val2", "val3");
            List<String> list = new ArrayList<>();
            for(Field field: Dog.class.getDeclaredFields()) {
                // since fields are private we need to first mark it accesible
                field.setAccessible(true);
                if( field.getType().equals(String.class)) {
                        list.add((String) field.get(dog));
                }
            }

```
You can you json serialization.
Consider below code:

```
List<String> StringFieldList = Arrays.asList("breed", "name", "origin");
Gson gson = new Gson();
Dog dogObject = new Dog();
//set all field(s) value
JsonObject dogJsonObject  = (JsonObject) gson.toJsonTree(dogObject, Dog.class);

for (String field : StringFieldList) {
    String stringFieldValue = dogJsonObject.get(field).getAsString();
    //Add stringFieldValue in list            
}

```