Skip to content

Commit 8a1dc0e

Browse files
committed
Fix boxed type inheritance
1 parent 615715b commit 8a1dc0e

File tree

1 file changed

+18
-9
lines changed

1 file changed

+18
-9
lines changed

include/jni/boxing.hpp

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,62 +21,71 @@ namespace jni
2121
}
2222

2323

24-
struct BooleanTag : public ObjectTag
24+
struct BooleanTag
2525
{
26+
using SuperTag = ObjectTag;
2627
static constexpr auto Name() { return "java/lang/Boolean"; }
2728
static constexpr auto BoxStaticMethodName() { return "valueOf"; }
2829
static constexpr auto UnboxMethodName() { return "booleanValue"; }
2930
};
3031

31-
struct CharacterTag : public ObjectTag
32+
struct CharacterTag
3233
{
34+
using SuperTag = ObjectTag;
3335
static constexpr auto Name() { return "java/lang/Character"; }
3436
static constexpr auto BoxStaticMethodName() { return "valueOf"; }
3537
static constexpr auto UnboxMethodName() { return "charValue"; }
3638
};
3739

38-
struct NumberTag : public ObjectTag
40+
struct NumberTag
3941
{
42+
using SuperTag = ObjectTag;
4043
static constexpr auto Name() { return "java/lang/Number"; }
4144
};
4245

43-
struct ByteTag : public NumberTag
46+
struct ByteTag
4447
{
48+
using SuperTag = NumberTag;
4549
static constexpr auto Name() { return "java/lang/Byte"; }
4650
static constexpr auto BoxStaticMethodName() { return "valueOf"; }
4751
static constexpr auto UnboxMethodName() { return "byteValue"; }
4852
};
4953

50-
struct ShortTag : public NumberTag
54+
struct ShortTag
5155
{
56+
using SuperTag = NumberTag;
5257
static constexpr auto Name() { return "java/lang/Short"; }
5358
static constexpr auto BoxStaticMethodName() { return "valueOf"; }
5459
static constexpr auto UnboxMethodName() { return "shortValue"; }
5560
};
5661

57-
struct IntegerTag : public NumberTag
62+
struct IntegerTag
5863
{
64+
using SuperTag = NumberTag;
5965
static constexpr auto Name() { return "java/lang/Integer"; }
6066
static constexpr auto BoxStaticMethodName() { return "valueOf"; }
6167
static constexpr auto UnboxMethodName() { return "intValue"; }
6268
};
6369

64-
struct LongTag : public NumberTag
70+
struct LongTag
6571
{
72+
using SuperTag = NumberTag;
6673
static constexpr auto Name() { return "java/lang/Long"; }
6774
static constexpr auto BoxStaticMethodName() { return "valueOf"; }
6875
static constexpr auto UnboxMethodName() { return "longValue"; }
6976
};
7077

71-
struct FloatTag : public NumberTag
78+
struct FloatTag
7279
{
80+
using SuperTag = NumberTag;
7381
static constexpr auto Name() { return "java/lang/Float"; }
7482
static constexpr auto BoxStaticMethodName() { return "valueOf"; }
7583
static constexpr auto UnboxMethodName() { return "floatValue"; }
7684
};
7785

78-
struct DoubleTag : public NumberTag
86+
struct DoubleTag
7987
{
88+
using SuperTag = NumberTag;
8089
static constexpr auto Name() { return "java/lang/Double"; }
8190
static constexpr auto BoxStaticMethodName() { return "valueOf"; }
8291
static constexpr auto UnboxMethodName() { return "doubleValue"; }

0 commit comments

Comments
 (0)