/* package whatever; // don't place package name! */

import java.util.*;
import java.lang.reflect.*;
import java.lang.*;
import java.io.*;

/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
	@FunctionalInterface
	interface Converter {
		Object convert(String s);
	}
	private static Map<Class,Converter> converterForClass = new HashMap<>();
	static {
		converterForClass.put(Integer.TYPE, s -> Integer.parseInt(s));
		converterForClass.put(Double.TYPE, s -> Double.parseDouble(s));
		converterForClass.put(String.class, s -> s);
		converterForClass.put(Long.TYPE, s -> Long.parseLong(s));
	};
	
	static class Demo {
		public int a;
		public long b;
		public String c;
		public double d;
		@Override
		public String toString() {
			return a+":"+b+":'"+c+"':"+d;
		}
	}
	
	public static void main (String[] args) throws java.lang.Exception
	{
		Object a = new Demo();
		Map<String,String> data = new HashMap<>();
		data.put("a", "123");
		data.put("b", "123456678789898");
		data.put("c", "HELLO");
		data.put("d", "123.456");
		for (Field f : Demo.class.getDeclaredFields()) {
			f.setAccessible(true);
			String str = data.get(f.getName());
			Object r = converterForClass.get(f.getType()).convert(str);
			f.set(a, r);
		}
		System.out.println(a);
	}
}