#pragma once #include <jni/functions.hpp> #include <jni/class.hpp> #include <jni/object.hpp> #include <jni/type_signature.hpp> #include <jni/tagging.hpp> namespace jni { template < class TheTag, class T > class Field { private: jfieldID& field; public: using TagType = TheTag; using FieldType = T; Field(JNIEnv& env, const Class<TagType>& clazz, const char* name) : field(GetFieldID(env, *clazz, name, TypeSignature<T>()())) {} operator jfieldID&() const { return field; } }; }